Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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_Command_Operand - Fatal编程技术网

Batch file 批处理:在代码循环期间,它停止设置变量。欢迎大家帮忙

Batch file 批处理:在代码循环期间,它停止设置变量。欢迎大家帮忙,batch-file,command,operand,Batch File,Command,Operand,正如你们所看到的,这是一个时间检查循环。看看时间是不是6:10:>10。基本上,我的问题是,它运行良好,直到它执行命令时,它击中了时间。当它变成时,您可能对delims=0有一个根本性的问题。如果值为00,则将一无所获。所以你需要引用一些变量 C:\Users\krato_000\Desktop>goto scheduletimes C:\Users\krato_000\Desktop>goto hour1 C:\Users\krato_000\Desktop>for /F

正如你们所看到的,这是一个时间检查循环。看看时间是不是6:10:>10。基本上,我的问题是,它运行良好,直到它执行命令时,它击中了时间。当它变成时,您可能对delims=0有一个根本性的问题。如果值为00,则将一无所获。所以你需要引用一些变量

C:\Users\krato_000\Desktop>goto scheduletimes

C:\Users\krato_000\Desktop>goto hour1

C:\Users\krato_000\Desktop>for /F "tokens=1*delims=0" %a in ("$0 6") do set /a "
HH"="%b"

C:\Users\krato_000\Desktop>set /a "HH"=" 6"

C:\Users\krato_000\Desktop>if 6 EQU 6 goto minutes1

C:\Users\krato_000\Desktop>for /F "tokens=1*delims=0" %a in ("$000") do set /a "
MM"="%b"

C:\Users\krato_000\Desktop>set /a "MM"=""
Missing operand.

C:\Users\krato_000\Desktop>if "00" == "00" goto seconds1

C:\Users\krato_000\Desktop>for /F "tokens=1*delims=0" %a in ("$019") do set /a "
SS"="%b"

C:\Users\krato_000\Desktop>set /a "SS"="19"

C:\Users\krato_000\Desktop>if 19 LSS 10 goto day1

C:\Users\krato_000\Desktop>pause
Press any key to continue . . .

并添加下面的第一行

if "%MM%"=="" set MM=0 & goto seconds1

请注意,批次不区分
%mm%
%mm%
。试试这个:

if "%SS%"=="" set SS=0
if %SS% lss 10 goto day1

我不明白“执行过程中缺少操作数”是什么意思好吧,让我说几句。我在
:minutes1 for/f“tokens=1*delims=0”%%a in(“$0%mm%”)之后得到缺少的操作数错误。如我的op中所述,如果%mm%eq 0转到seconds1
,则设置/a mm=%%b。当我说execute时,它意味着在找到正确的变量后应该执行的命令。还有,现在我把代码弄乱了,我似乎在
之后得到了一个额外的缺少的操作数:seconds1 for/f“tokens=1*delims=0”%%a in($0%ss%”)。如果%ss%lss 10 goto day1
,请设置/a ss=%%b。如果“%SS%”==“goto day1,要修复你说要添加的秒数,添加它会导致语法错误。如果“%MM%”==“goto seconds1,将其更改为空白
,它似乎根本不起作用,因为它试图查看它是否等于空白而不是0。如果有帮助的话,我会用我的日志编辑这篇文章。将if“%MM%”改为if“%MM%”将MM=0设置为if“%MM%”,并将if“%SS%”改为if“%SS%”,并将if“%SS%”改为if“%SS%”,将SS=0设置为if“%SS%”,并将if“%SS%”改为if“%SS%”,然后剩下的问题是$0。这导致尝试将MM设置为非数值。。。这是用/a做不到的。你是想在上午6:10分10秒的时候执行一个例程吗?只需在该区域添加2>nul似乎就解决了这个问题。我会随时通知你。
if "%HH%"=="6" goto minutes1
if "%MM%"=="" set MM=0 & goto seconds1
if "%SS%"=="" set SS=0
if %SS% lss 10 goto day1
:minutes1
set /a min=0
for /f "tokens=1*delims=0" %%a in ("$0%mm%") do set /a min=%%b 2>nul
echo %min%
if %min% equ 0 goto seconds1