发布正在寻找变通的部分代码
if 09 LSS 9 (ECHO YES) ELSE (ECHO NO)
此命令总是回显"是",因为它认为09小于9。这个命令还有其他选择吗?
编辑:
谢谢,但Modulo部分在我试图插入的命令中不起作用。
有一个包含"123409"的文件test.txt,下面是我的命令
set actualdate=9
for /f "usebackq Tokens=1,2,3" %%d in (test.txt) do (SET /a x=1000%%e %% 1000 & if %x% LSS %ActualDate% ECHO %%d >> test2.txt)
代码片段的问题在于语法和扩展百分比
可以将&
用于一行中的多个命令(而不是管道|
),也可以将它们拆分为多行
您无法访问块内具有百分比扩展的变量x
,但延迟扩展在中有效
setlocal EnableDelayedExpansion
set actualdate=9
for /f "usebackq Tokens=1,2,3" %%d in (test.txt) do (
SET /a x=1000%%e %% 1000
if !x! LSS %ActualDate% ECHO %%d >> test2.txt
)
如果可以将数字放入变量中,则可以使用模去掉前导零。
试试这个例子:
@ECHO OFF
SET a=09
SET b=9
SET /a x=1000%a% %% 1000
ECHO %x%
SET /a y=1000%b% %% 1000
ECHO %y%
if %x% LSS %y% (ECHO YES) ELSE (ECHO NO)
PAUSE
如果你尝试设置/a a=09,你会得到以下错误:
无效号码。数字常量可以是十进制(17)、十六进制(0x11)或八进制(021)。