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-Key: 639274

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

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

Member: rubberman
Solution rubberman Jan 10, 2021 at 18:42:31 (UTC)
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
Member: Sarumahr
Sarumahr Jan 10, 2021 at 19:07:57 (UTC)
Goto Top
Super danke. Die Dateinamen beinhalten keine Sonderzeichen