批量比较路径名%1

时间:2013-04-04 15:07:02

标签: string batch-file path compare

这是我的批处理脚本的一小部分,即使我在其周围使用“”,但只要路径中有空格就无法运行。

    call :part %1

    :part
    set  _fname=%~nx1
    if "%_fname:~0,7%"=="CREATE_" (
      copy "%~1" "%appdata%\somefolder"
      goto :eof
      )

如果我用这样的东西开始,一切正常。

    mybatch.bat "Z:\hello_world\CREATE_abc.def"

当这样开始时:

    mybatch.bat "Z:\hello world\CREATE_abc.def"

我收到如下错误:“world \ CREATE_abc.def”“==”“”无法处理。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题是在CALLed:part

中解析%1

 CALL :part "%~1"

%~1扩展第一个参数而不包含引号。添加的周围引号确保被调用的标签只接收一个参数。