Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 带字符串操作和变量的延迟扩展_Batch File - Fatal编程技术网

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