我的批处理文件接受4个参数: mybatch.bat -name =指向文件类型=某个预定义枚举的路径
然后我将它传递给另一个批处理文件以检查是否给出了两个值。
我的问题是,当我收到包含空格的路径时,如何提取文件的位置。它可能包含也可能不包含空格。
我知道如何处理没有空间。
set arg1=%~1
set arg2=%~2
set arg3=%~3
set arg4=%~4
set name=
set sType=
if "%*" == "" (
goto Help
)
call parse.bat
if %errorlevel% equ 1 (
goto error
) else if %errorlevel% equ 2 (
goto Help
)
set file=%name%
FOR %%i IN ("%file%") DO (
set filedrive=%%~di
set filepath=%%~pi
set filename=%%~ni
)
set fileLoc=%filedrive%%filepath%
set name=%filename%
if defined arg5 echo "invalid argument" & goto :error
if /I %arg1% equ -help (
exit /b 2
) else if /I %arg1% equ -h (
exit /b 2
)
if /I %arg1% equ -name (
set name=!arg2!
) else if /I %arg1% equ -sType (
set sType=%arg2%
) else (
goto :error
)
if not defined arg3 goto :chkparam
if /I %arg3% equ -name (
set name=%arg4%
) else if /I %arg3% equ -sType (
set sType=%arg4%
) else (
goto :error
)
main.bat -name="c:\tmp\New folder\file2.txt" -stype=other
folder\file2.txt" -stype=other" was unexpected at this time.