Batch file 带字符串操作和变量的延迟扩展
批处理文件中的以下命令返回错误 “Batch file 带字符串操作和变量的延迟扩展,batch-file,Batch File,批处理文件中的以下命令返回错误 “1!==1此时意外” 最后一行每一位数字重复一次,替换的==1。您应该为if命令使用一个临时变量,如下所示: @echo off setlocal enableDelayedExpansion set num1=0 set/p "pass=>" :start set/a num1=%num1%+1 set/a num2=%num1%-1 set "temppass=!pass:~%num2%,1!" if [%temppass%]==[1] echo se
1!==1
此时意外”
最后一行每一位数字重复一次,替换的
==1
。您应该为if命令使用一个临时变量,如下所示:
@echo off
setlocal enableDelayedExpansion
set num1=0
set/p "pass=>"
:start
set/a num1=%num1%+1
set/a num2=%num1%-1
set "temppass=!pass:~%num2%,1!"
if [%temppass%]==[1] echo set pass%num1%=1& goto start
pause
if中的暂停和回音是为了调试目的,可能应该删除,因为我们猜测您没有说输入的内容是“通过” 您的
if
命令应为
if "!pass:~%num2%,1!"=="1" set pass%num1%=1& goto start
这确保运算符==
的两侧都包含非空字符串
这对你的逻辑缺陷没有帮助,但它可以修复错误报告。您没有清楚地说出您想要实现的目标,因此除此之外…谁知道呢?pass变量尚未定义,因此IF命令失败。哇!忘了在描述中加上这个。对不起,我正在做一个低级文本加密机。它还包括信件。
if "!pass:~%num2%,1!"=="1" set pass%num1%=1& goto start