rcbenni
Goto Top

Datei mit For schleife öffnen (Batch)

Guten morgen ,

Erneut stehe ich vor einem kleinen Problem welches ich nicht durch Googeln beseitigen konnte.

Ich würde gerne mit einer Batch Datei eine PDF starten welche jedoch LEERZEICHEN im namen enthält und auch die ersten und letzten 2 Buchstaben bzw. Ziffern sind nicht bekannt

Hier mal ein Schnipsel

Set /p S=:
set part11=%S%
set part11=%part11:~0,3%
set part22=%S%
set part22=%part22:~3,2%
sset part33=%S%
set part33=%part33:~5,3%
if "%part11%"=="095" goto test  

:test
echo %part11%_%part22%_%part33%
set best=%part11% %part22% %part33%
set Bestordner=%part11%%part22%
echo %bestordner%
echo %best%
pause

for %%i in ("%bestordner%\%best% *.*") do start "" /max "%%~i"  

pause


Nun ist es so das die Meisten Dateien z.B 095 00 387 xx.pdf heißen jedoch aber manche ausnahmen eben mit 01 095 000 387 xx.pdf

Dies scheint mir Probleme zu machen da meine Schleife ja nur Dateien startet die mit %Best% beginnen?
Wie könnte ich diese Kleinigkeit beheben?
Zudem würde ich auch gerne das die Batch überprüft ob dann tatsächlich eine Datei gestartet wird bzw. eine Datei mit diesem Namen existiert ?


lg rcbenni

Content-ID: 479700

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

Ausgedruckt am: 23.11.2024 um 16:11 Uhr

rubberman
rubberman 31.07.2019 um 09:31:48 Uhr
Goto Top
ungetestet
set "success="  
for %%i in ("%bestordner%\*%best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (echo awesome) else echo f**k

Steffen
rcbenni
rcbenni 31.07.2019 um 09:51:50 Uhr
Goto Top
Erstmal DANKE!
Da du mir schon zum zweiten mal helfen willst.

for %%i in ("%bestordner%\*%best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
Funktioniert leider nicht bzw die Kontrolle ob etwas gestartet wird funktioniert aber der "trick" mit "*%best% *.*" geht leider nicht

lg rcbenni
rubberman
Lösung rubberman 31.07.2019 um 09:54:37 Uhr
Goto Top
Komisch. Mach mal folgende Schweinerei ...
for %%i in ("%bestordner%\%best% *.pdf" "%bestordner%\* %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  

Steffen
rcbenni
rcbenni 31.07.2019 aktualisiert um 10:08:28 Uhr
Goto Top
Schade geht leider auch nicht

um deinen Code zu zitieren
f**k

wenn es so garnicht geht mach ich die selbe schleife einfach 6 mal von
for %%i in ("%bestordner%\00%best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
bis zu
for %%i in ("%bestordner%\05%best% *.pdf") do start "" /max "%%~i" &&set "success=1"  

Da meine Dateien wenn dann mit 00,01,02,03,04 oder eben 05 anfangen

müsste auch so gehen nur halt eine hässliche Lösung

rcbenni
rcbenni
rcbenni 31.07.2019 aktualisiert um 10:36:24 Uhr
Goto Top
Das geht irgendwie auch nicht
V:
cd V:\Projekte\0_Bestueckungsplan_PDF
set best=%part11% %part22% %part33%
set Bestordner=%part11%%part22%

set "success="  
for %%i in ("%bestordner%\%best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 00
goto 2

:00
set "success="  
for %%i in ("%bestordner%\00 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 01
goto 2

:01
set "success="  
for %%i in ("%bestordner%\01 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 02
goto 2


:02
set "success="  
for %%i in ("%bestordner%\02 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 03
goto 2

:03
set "success="  
for %%i in ("%bestordner%\03 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 04
goto 2


:04
set "success="  
for %%i in ("%bestordner%\04 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto 05
goto 2


:05
set "success="  
for %%i in ("%bestordner%\05 %best% *.pdf") do start "" /max "%%~i" &&set "success=1"  
if defined success (msg * wird gestartet) else goto fuck
goto 2


:fuck
msg * nope
goto 2

bekomme nur "nope" …
ist vielleicht das Leerzeichen ein Problem?
bei bestordner\05 %best%
rubberman
Lösung rubberman 31.07.2019 um 14:12:49 Uhr
Goto Top
Du hast irgendwo einen Bug im Pfad.
Meine Testumgebung:
root
  |
  +- 02 03
  |    |
  |    +- 01 02 03 04 05.txt
  |    |
  |    +- 02 03 04 05.txt
  |
  +- test.bat


Code test.bat:
@echo off
for %%i in ("02 03\*02 03 *.txt") do echo %%~i  
pause


Ausgabe:
02 03\01 02 03 04 05.txt
02 03\02 03 04 05.txt
Drücken Sie eine beliebige Taste . . .

Bedeutet, Leerzeichen kein Problem, findet Dateien mit und ohne vorangestellte 01.

Steffen
rcbenni
rcbenni 31.07.2019 um 16:27:28 Uhr
Goto Top
Hat schlussendlich funktioniert. face-smile


Vielen dank für die Hilfe!!