2013-09-05 12 views
17

Muszę przekazać wiersz parametru AB CD do pliku wsadowego z wiersza polecenia. Ten parametr odnosi się do nazwy pliku.Jak przekazywać parametry wiersza poleceń z miejscem w pliku wsadowym

Jeśli używam korzystanie AB CD skrypt po prostu wybrać pierwszą część i powrócić Unable to find the file AB.txt

Jeśli mogę umieścić cytat wokół moich parametrów jak "AB CD" I got

"AB CD".txt 
Illegal characters in path. 

Odpowiedz

31

można użyć% ~ 1% zamiast 1

np TEST.BAT z:

echo %~1 

następnie wezwanie do test "abc de" wyświetli:

abc de 
+0

, że to, co znalazłem od to pytanie: http://stackoverflow.com/questions/473117/pass-path-with-spaces-as-parameter-to-bat-file – magdmartin

10

co można zrobić, to

>batch.bat "ab cd.txt" 

Gdy parametry zawierają białe znaki, można je ująć w cudzysłowy.

+0

dwie rzeczy, ja nie mogę dodać rozszerzenia do moich parametrów, ponieważ jest on używany gdzieś w moim skrypcie wsadowym innym niż rozszerzenie pliku. Po drugie, gdy dodaję cytat, dodaje się w nazwie pliku (zobacz ostatni przykład moich pytań). – magdmartin

+0

Cóż, w tym przypadku, wydaje mi się, że problem nie jest związany z przekazywaniem parametrów, to jest z programowaniem w pliku wsadowym. Możesz to sprawdzić, tworząc prosty plik wsadowy z tym prostym wynikiem echa% 1, co spowoduje wyświetlenie pełnej nazwy "ab cd". Oznacza to, że poprawnie przekazujesz parametry, ale gdzieś w pliku wsadowym nie jest poprawnie traktowane. Gdzieś, próbuje odtworzyć nazwę pliku, rozbijając go i dodając rozszerzenie. –

+0

zgadzam się. Właściwie muszę użyć% 1 zamiast% 1 w moim skrypcie – magdmartin