Batch file 命令的语法不正确-IF语句批处理
我试图批量执行下面的函数,但我在IF语句中收到一个错误,我一直在尝试修复这个问题,但没有成功Batch file 命令的语法不正确-IF语句批处理,batch-file,Batch File,我试图批量执行下面的函数,但我在IF语句中收到一个错误,我一直在尝试修复这个问题,但没有成功 :Method2 set File=%1 set Filename=%2 echo %Filename% pause IF NOT x%Filename:Test=% == x%Filename% ( File >> File_List.txt ) exit /b 2 :End 我知道问题在IF语句中,我一直在调试该问题,但找不到代码的正确语法。在此之后,我想将“Test”替换
:Method2
set File=%1
set Filename=%2
echo %Filename%
pause
IF NOT x%Filename:Test=% == x%Filename%
(
File >> File_List.txt
)
exit /b 2
:End
我知道问题在IF语句中,我一直在调试该问题,但找不到代码的正确语法。在此之后,我想将“Test”替换为用户的输入参数,以便它可以是任何特定的单词,我想使它看起来像这样
IF NOT x%Filename:%Input%=% == x%Filename%
你能帮忙吗?我已经找到了解决问题的方法,是的,基本上是
”(“
需要在IF的末尾,它解决了这个问题,对于参数问题,我找到了下面的方法,效果非常好
:Method2
set "File=%1"
set "Filename=%2"
echo %Filename%
set /p "test=: "
pause
IF NOT "%Filename%%test%" == "%Filename%" (
File >> File_List.txt
)
exit /b 2
:End
:Method2
set File=%1
set Filename=%2
set param=%3
IF NOT "!Filename:%param%=!"=="%Filename%" (
echo %File% >> File_List.txt
echo %File% moved
)
我已经为我的问题找到了一个解决方案,是的,基本上,
”(“
需要在IF的末尾,它解决了这个问题,对于参数问题,我发现下面的解决方案非常好
:Method2
set File=%1
set Filename=%2
set param=%3
IF NOT "!Filename:%param%=!"=="%Filename%" (
echo %File% >> File_List.txt
echo %File% moved
)
(
必须与if
在同一物理行上。如果if“string1”==“string2”…
更好,因为它处理文件名中的空格(无需使用x
来确保字符串不为空)。您需要使用搜索
功能对延迟扩展
进行变量替换,或者使用echo%filename%| findstr“%input%”
并使用errorlevel
进行测试。(
必须与if
在同一物理线上。if“string1”更好==“string2”…
处理文件名中的空格(无需使用x
来确保字符串不为空)。您需要使用search
工具对delayed expansion
进行检查,或者使用echo%filename%| findstr”%input%“
并使用errorlevel
进行测试。