Dlaczego CMD "omija" znaki quote w skrypcie


(XOR) #1

Napsialem skrypt, ktory ma pomóc zautomatyzować masowe usuwanie folderów przy użyciu komendy RD /S (for /F %%i IN (plik.txt) DO rd /s %%i).

 

Lista sceiżek do fodlerów umieszczona jest w pliku tekstowym "plik.txt" pomiędzy znakami " ". Problem w tym, że gdy scieżka posiada w nazwie spację, to nawet ujęcie jej w znaki " " nie pomaga CMD ominąć tych spacji.

 

Dla przykładu ścieżka "c:\nowy folder", odczytywana jest przez skrypt jako "c:\nowy". Skrypt zadaje pytanie:

 

c:\nowy, Czy na pewno (T/N)?

 

Dlaczego tak się dzieje? Czy da sie jakoś obejść ten problem?


(drunkula) #2

A dokładniej? czy to wygląda tak:

Znaczy… czy zała ścieżka, razem z plikiem jest w ciapkach?

 

Od razu zaznaczę, że nie testowałem, ale może użyj Folder~1 , bez ciapków?


(madoch) #3

Tak to powinno wyglądać

 

for /F “usebackq tokens=*” %%i IN (plik.txt) DO rd /s %%i


(XOR) #4

Tak, już doszedlem do opcji “tokens”. Czy jest możliwość, aby śceiżki nie znajdowały się w cudzysłowiu? gdy dla komendy for /f używam opcji “tokens=* i delims=” ścieżki odcyztywane są z pliku przy pomocy komendy ECHO w całości. Niestety, gdy użyję komendy RD skrypt nie radzi sobie już se spacjami. Dlaczego tak się dzieje?