23
votes

I need to pass parameter line AB CD to a batch file from the command line. This parameter refer to a file name.

If I use use AB CD the script just pick the first part and return Unable to find the file AB.txt

If I put quote around my parameters like "AB CD" the I got

"AB CD".txt 
Illegal characters in path.
3

3 Answers

37
votes

you can use %~1 instead of %1

e.g a test.bat with :

echo %~1

then a call to test "abc de" will display :

abc de
12
votes

what you can do is

>batch.bat "ab cd.txt"

When the parameters contain whitespace, you can enclose them in quotes.

0
votes

if it only accept 1 paramenter use "%*" you don't need to quote the parameter

myapp.cmd

@echo off
echo "%*"

test it

myapp single parameter with space