スペースを含む文字列に追加の二重引用符を使用しないでください。このパラメーター%~
は、文字列を囲む二重引用符のすべてのペアを削除します。
@echo off &setlocal
set "Variable="my var""
echo Variable: %Variable%
call :concat %Variable%
goto :eof
:concat
echo concat %%1: %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
出力は次のとおりです。
Variable: "my var"
concat %1: "my var"
concat NewVar: my var
文字列を二重引用符で囲むと、次のようになります。
@echo off &setlocal
set "Variable="my var""
echo Variable: %Variable%
call :concat "%Variable%"
goto :eof
:concat
echo concat %%1: %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
出力が壊れている場合:
Variable: "my var"
concat %1: ""my
concat NewVar: "my