Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variable im Script hoch zählen

Frage Entwicklung Batch & Shell

Mitglied: Nagus

Nagus (Level 2) - Jetzt verbinden

05.11.2010 um 15:57 Uhr, 5849 Aufrufe, 6 Kommentare

Hi,
ich stehe gerade auf dem Schlauch:

in einem Script benötige ich die Funktion, das aus einem Verzeichnis "Verzeichnis10" eine Datei in ein Verzeichnis "10" kopiert wird.
Da die Verzeichnisse nicht konsistent nummeriert sind und ich mir die Fehler in der log Datei schenken möchte, sieht mein mein Ansatz derzeit wie folgt aus:

01.
:robocopy 
02.
Set zaehler=10 
03.
if exist  d:\Verzeichnis\Verzeichnis%zaehler% robocopy d:\Verzeichnis\Verzeichnis%zaehler% d:\Verzeichnis\%zaehler% nfpc.* /w:30 /R:10 /V /TS /NP /log+:d:\Copy.log 
04.
Set zaehler=%zaehler%+1 
05.
if %zaehler%==25 goto Ende 
06.
goto robocopy 
07.
 
08.
:ende 
09.
 

Das blöde ist nun nur: der zählt mir die Variable nicht hoch und bleibt immer bei 10. GRRRR

Nagus
Mitglied: bastla
05.11.2010 um 16:09 Uhr
Hallo Nagus!

Wenn gerechnet werden soll, dann musst Du das auch klarstellen:
set /a zaehler=%zaehler%+1
bzw kürzer:
set /a zaehler+=1
Da Du aber sowieso immer von 10 bis 25 zählen willst, könntest Du auch eine "for /L"-Schleife verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
05.11.2010 um 17:22 Uhr
Hi bastla,
danke!
Mit der for Schleife dachte ich mir schon, aber da tue ich mich meist ein bisserl schwer ....
Gruß
Nagus
Bitte warten ..
Mitglied: bastla
05.11.2010 um 18:37 Uhr
Hallo Nagus!

Na ja, aber
for /L %i in (10,1,25) do @echo if exist d:\Verzeichnis\Verzeichnis%i robocopy d:\Verzeichnis\Verzeichnis%i d:\Verzeichnis\%i nfpc.* /w:30 /R:10 /V /TS /NP /log+:d:\Copy.log
(zum Testen direkt an der Kommandozeile, und daher nur mit %i anstatt %%i und einem "@echo") ist dann aber auch nicht so wahnsinnig kompliziert ...

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
05.11.2010 um 18:49 Uhr
Stimmt ist simpel.
Ich hau nur noch einige Formatierungen in das Log rein, damit es besser lesbar wird. Dabei wird dann die Zeile mit der For Schleife und den Pipes so lang, dass ich immer den Überblick verliere und die Tests unübersichtlich werden.
Aber mal sehen - ist eine Option für die Zukunft
Gruß
Nagus
(glücklich weil das Script sauber läuft)
Bitte warten ..
Mitglied: bastla
05.11.2010 um 19:02 Uhr
Hallo Glücklicher !

Du kannst in einem Batch ja auch etwas strukturieren:
01.
for /L %%i in (10,1,25) do ( 
02.
    if exist d:\Verzeichnis\Verzeichnis%%i ( 
03.
        echo Jetzt geht's los mit Verzeichnis%%i! 
04.
        robocopy d:\Verzeichnis\Verzeichnis%%i d:\Verzeichnis\%%i nfpc.* /w:30 /R:10 /V /TS /NP /log+:d:\Copy.log 
05.
        echo Das war's fuer Verzeichnis%%i. 
06.
        echo\ 
07.
08.
)
...und wenn Du an die letzte Klammer noch ein
>D:\Info.log
hängst, landen alle "echo"-Ausgaben in einer Datei ...

Falls Du allerdings Timestamps einbauen wolltest - etwa
        echo Am %date% um %time% geht's los mit Verzeichnis%%i!
müsstest Du dafür "delayedExpansion" verwenden, da ansonsten für %date%und %time% immer die Werte zu Beginn der Schleife verwendet würden.

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
06.11.2010 um 13:30 Uhr
Danke für die Mühe!

Wird aber bestimmt nicht meine letzte Frage sein
Nagus
Bitte warten ..
Ähnliche Inhalte
Linux
gelöst Umlaute zählen - Bash-Script (5)

Frage von plutowitsch zum Thema Linux ...

Batch & Shell
gelöst SID per Script auslesen und als Variable einlesen (9)

Frage von tzabbi55 zum Thema Batch & Shell ...

JavaScript
Skript schlägt fehl - nur Zahlen werden gespeichert (3)

Frage von Ah3n0bar6us zum Thema JavaScript ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(3)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Virtualisierung
Unterschied zwischen VDI und Terminal Server Lösungen (13)

Frage von tukawi06 zum Thema Virtualisierung ...