kluivi
Goto Top

Batchdatei zum Auslesen der aktuellsten Datei mit Leerzeichen

Hallo zusammen,

ich hab (dank einer Anleitung in diesem Forum face-smile ) folgendes Batch-Script erstellt, welches ein bestimmtes Verzeichnis ausliest und mir das aktuellste JPG Bild anzeigt:

for /f %%i in ('dir /oD /b \\server.domain\verzeichnis\*.jpg') do @set akt_bild=%%i  
rundll32.exe shimgvw.dll,ImageView_Fullscreen \\server.domain\verzeichnis\%akt_bild%

Das funktioniert auch soweit alles wunderbar, solange das aktuellste JPG Bild keine Leerzeichen im Namen hat.

Sobald das aktuellste Bild in dem Verzeichnis z.B. Bild 1.jpg heißt, wird in die Variable
%akt_bild%
nur noch Bild geschrieben, was so natürlich nicht angezeigt werden kann...

Ich hab schon versucht, mit diversen einfachen und doppelten Anführungszeichen den Code zu ändern, aber leider vergebens.

Darum meine Frage, ob mir von Euch jemand hier weiterhelfen kann?

Vielen Dank schonmal im Voraus und viele Grüße,

Tobi


[Edit Biber] Verschoben von "Tools & Utilities" nach "Batch und Shell". [Biber]

Content-Key: 74168

Url: https://administrator.de/contentid/74168

Printed on: April 19, 2024 at 20:04 o'clock

Member: bastla
bastla Nov 22, 2007 at 07:52:25 (UTC)
Goto Top
Hallo kluivi und willkommen im Forum!

Die Antwort auf die Leerzeichenproblematik ist in CMD immer das Einschließen in Anführungszeichen sowie das Vermeiden der automatischen Aufteilung in der "for"-Schleife durch Verwendung von "delims=" - daher sollte es so gehen:
for /f "delims=" %%i in ('dir /oD /b \\server.domain\verzeichnis\*.jpg') do @set "akt_bild=%%i"  
rundll32.exe shimgvw.dll,ImageView_Fullscreen "\\server.domain\verzeichnis\%akt_bild%"  

Grüße
bastla
Member: kluivi
kluivi Nov 22, 2007 at 08:07:19 (UTC)
Goto Top
Hallo bastla,

super, vielen Dank für schnelle Antwort!
Das klappt jetzt einwandfrei.

Nur noch zur Info: Die Anführungszeichen beim Pfad in der 2. Zeile muss man weglassen, sonst kommt die shimgvw.dll durcheinander... face-smile

Hier also der funktionierende Code:

for /f "delims=" %%i in ('dir /oD /b \\server.domain\verzeichnis\*.jpg') do @set "akt_bild=%%i"  
rundll32.exe shimgvw.dll,ImageView_Fullscreen \\server.domain\verzeichnis\%akt_bild%

Vielen Dank nochmal und viele Grüße,

Tobi