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
Kommentar vom Moderator Biber am 18.02.2010 um 19:27:14 Uhr
Verschoben von "Entwicklung" nach "Batch & Shell".
GELÖST

Problem mit for schleife - batch

Frage Entwicklung Batch & Shell

Mitglied: ForgottenRealm

ForgottenRealm (Level 1) - Jetzt verbinden

18.02.2010, aktualisiert 19:27 Uhr, 3452 Aufrufe, 5 Kommentare

Hallo


Ich wollte einige Scripte, welche erstellte Batchdateien automatisch verarbeiten (mit rar.exe packen und verschieben), mit einer for-schleife kürzen, allerdings funktioniert das einfach nicht.

Bisher schaut die Datei so aus (gekürzt)

@Title Archivierung
@echo OFF

@set NETWORKDRIVE=Z:
@set LOCALDRIVE=E:
@set WORKPATH=%NETWORKDRIVE%\Tasks\Clients\Automatische Sicherung
@if %COMPUTERNAME%==SERVER @set WORKPATH=%LOCALDRIVE%\Netzwerkablage\Tasks\Clients\Automatische Sicherung
@set /P VERSION=<"%WORKPATH%\Version.txt"
@set CLIENTLIST=Clients.txt
@set DELOPTIONS=/F /Q
@set RAROPTIONS=-Y -M5 -U A
@set ARCHIVFILE=%VERSION%.rar
REM -----------------------------------------------------------------------------------------------
@set CLIENT=abc
@set TARGET=%WORKPATH%\%CLIENT%\%ARCHIVFILE%

@Title %CLIENT%
CD %WORKPATH%\%CLIENT%
@del %DELOPTIONS% "%TARGET%"
@rar %RAROPTIONS% "%TARGET%" "%VERSION%"


Der Teil nach dem Trennstrich wiederholt sich etwa 350 mal, was die Batchdatei wahnsinnig unübersichtlich und unpraktisch macht.
In der Clients.txt habe ich jetzt alle ca 350 Clienten eingetragen, welche abgearbeitet werden sollen.

Das was ich mir bisher mit for gebastelt habe, funktioniert nicht, weil die for-schleife in jeder Anweisung bei der leerstelle in "Automatische Sicherung" aufhört, sobald diese mit der Variable %%L arbeiten soll, obwohl in dieser nur der Inhalt der Textdatei stehen sollte.

@for /F %%L IN ("%WORKPATH%\%CLIENTLIST%") DO (

@Title %%L
@set TARGET=%WORKPATH%\%%L\%ARCHIVFILE%
CD %WORKPATH%\%%L
@del %DELOPTIONS% "%TARGET%"
@rar %RAROPTIONS% "%TARGET%" "%VERSION%"
)

Wo liegt der Fehler?
Mitglied: Biber
18.02.2010 um 19:25 Uhr
Moin ForgottenRealm,

sinngemäß musst du bei der FOF/F-Anweisung mit "delims=" arbeiten (=keine Token-Trenner, nimm ganze Zeile) und die Laufvariable dann ggf. in Anführungszeichen setzen.

01.
... 
02.
FOR /F "delims=" %%L IN ("%WORKPATH%\%CLIENTLIST%") DO ( 
03.
 
04.
Title %%L 
05.
set "TARGET=%WORKPATH%\%%L\%ARCHIVFILE%" 
06.
CD "%WORKPATH%\%%L" 
07.
del %DELOPTIONS% "%TARGET%" 
08.
rar %RAROPTIONS% "%TARGET%" "%VERSION%" 
09.
10.
....
Grüße
Biber
Bitte warten ..
Mitglied: bastla
18.02.2010 um 19:29 Uhr
... und außerdem wird "%WORKPATH%\%CLIENTLIST%" (da unter Anführungszeichen stehend) als Text und nicht als Pfad zu einer Datei interpretiert - daher:
FOR /F "usebackq delims=" %%L IN ("%WORKPATH%\%CLIENTLIST%") DO (
Grüße
bastla
Bitte warten ..
Mitglied: ForgottenRealm
18.02.2010 um 19:36 Uhr
Hi

Funktioniert leider beides nicht.

Die Variable %%L wird nach wie vor nicht richtig aufgelöst
Bitte warten ..
Mitglied: bastla
18.02.2010 um 19:57 Uhr
Hallo ForgottenRealm!
Die Variable %%L wird nach wie vor nicht richtig aufgelöst
Wie äußert sich das?
Ohne "delayedExpansion" kann allerdings die Verwendung der Variablen %TARGET% in der Schleife nicht funktionieren - so sollte es aber klappen:
01.
FOR /F "usebackq delims=" %%L IN ("%WORKPATH%\%CLIENTLIST%") DO ( 
02.
    Title %%L  
03.
    CD "%WORKPATH%\%%L"  
04.
    del %DELOPTIONS% "%WORKPATH%\%%L\%ARCHIVFILE%"  
05.
    rar %RAROPTIONS% "%WORKPATH%\%%L\%ARCHIVFILE%" "%VERSION%" 
06.
)
Grüße
bastla
Bitte warten ..
Mitglied: ForgottenRealm
18.02.2010 um 20:20 Uhr
Im Moment schaut es so aus ...

Wenn ich CD "%WORKPATH%\%%L" verarbeiten lasse, so wird das Ziel nicht gefunden und der Text in der Fehlerausgabe endet bei Automatische"

Es scheint also ein Problem mit dem Leerzeichen zu geben.

Lasse ich mir jetzt aber "%WORKPATH%\%%L" mit echo ausgeben, so wird der Pfad korrekt angegeben.

Woran liegt das?

Weiterhin bin ich bei anderen Scripts darauf angewiesen, in der For-Schleife Variablen zu definieren, was aber leider nicht funktioniert.

Ich könnte natürlich auch mit;

@set CLIENTS=AA BB CC DD ...

for %%i in (%CLIENTS%) do (
set client=%clients%
cd "%clients%"
)

Arbeiten, allerdings wird die Variable dann wieder sehr lang und unübersichtlich ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch zum auslesen bestimmter Einträge der IPconfig mit for-Schleifen (12)

Frage von Dantaros zum Thema Batch & Shell ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (12)

Frage von Spitzbube zum Thema Netzwerke ...

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...