sarumahr
Goto Top

Batch-Script lässt die letzten 2 Zeichen beim echo weg

Ich habe folgendes Script:

@echo off
echo INSERT INTO `v1` (`id`, `img`, `name`, `evolves`) VALUES >> filenames.txt
    for /R "C:\xampp\htdocs\website.local\img\images\v1" %%f in (*.png) do (  
    echo ('','%%~nf','',''), >> filenames.txt  
	
)
pause

wenn ich den Befehl nun ausführe wird folgendes in filenames.txt eingetragen:

('','image1','',''
('','image2','',''
('','image3','',''
('','image4','',''
('','image5','',''
usw.

Es sollte aber ('','image1','',''), dort eingetragen werden.

Warum passiert dies nicht?

Content-ID: 639274

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

Ausgedruckt am: 15.11.2024 um 03:11 Uhr

rubberman
Lösung rubberman 10.01.2021 um 19:42:31 Uhr
Goto Top
Die schließende Klammer wird als schließende Klammer des Schleifenrumpfes interpretiert. Mit ^ escapen:
>>"filenames.txt" echo ('','%%~nf','',''^),  
BTW Wenn dein Dateiname sowas wie & enthält, geht's vermutlich trotzdem krachen ...

Steffen
Sarumahr
Sarumahr 10.01.2021 um 20:07:57 Uhr
Goto Top
Super danke. Die Dateinamen beinhalten keine Sonderzeichen