批处理的命令行是用空格作为参数分隔符的,遇到带空格的参数的时候就麻烦了,所以我们可以把参数用双引号包起来,但是这样又会引入新的问题,参数也会死死的记住这个引号,当我们拼接路径的时候,就麻烦了,比如 readygo.bat "c:\pro files",批处理文件里面做了这样的处理
set fileName=%1\test.txt
结果就变成了 fileName="c:\pro files"\test.txt
办法很简单:set fileName=%~1\test.txt,这样就去掉了双引号。
注意,某些地方用到fileName的时候,有可能需要你再次包装:"fileName",这个看情况。
这儿讲了很多,http://www.windowsitpro.com/article/server-management/how-do-i-pass-parameters-to-a-batch-file-,但是偏偏没有上述用法,正是智者千虑,必有一失。