Batch command传入带空格的参数(文件路径等)
批处理的命令行是用空格作为参数分隔符的,遇到带空格的参数的时候就麻烦了,所以我们可以把参数用双引号包起来,但是这样又会引入新的问题,参数也 会死死的记住这个引号,当我们拼接路径的时候,就麻烦了,比如 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-
如果参数带有空格的话,很简单,只要
- 用在代码里括号将参数变量括起来
- 将传入的参数用双引号括起来
REM======================================
@echo off
REM batch script: demo.bat
If not (%1) == () Goto Run
Echo usage: demo.bat [first argument]
Goto End
:Run
Echo %1
:End
REM======================================