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

問題は、呼び出された :part の %1 の解析です

試す

 CALL :part "%~1"

%~1引用符で囲まずに最初のパラメーターを展開します。また、追加された周囲の引用符により、呼び出されたラベルが 1 つのパラメーターのみを受け取るようになります。

于 2013-04-04T15:29:35.930 に答える