1

这是我的批处理脚本的一小部分,一旦路径中有空格,即使我在它周围使用“”,它也不起作用。

    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”“==""" 无法处理。

有任何想法吗?

4

1 回答 1

1

问题是 CALLed 中 %1 的解析:part

尝试

 CALL :part "%~1"

%~1扩展第一个参数,不带引号。并且添加的引号确保被调用的标签只会接收一个参数。

于 2013-04-04T15:29:35.930 回答