此脚本如何继续返回错误?
@echo off
set csd=Fri 03/08/2013
set edayn=%csd:~7,1%%csd:~8,1%
set /a tsday=%edayn%
echo %edayn%
echo %tsday%
pause
时间格式:ddd mm / dd / yyyy
“csd”变量是我打开脚本的那一天
为了消除变量“edayn”或日期的零,我使用“set / a”来消除它
但它显示了这个错误:
Invalid number. Numeric constants are either decimal (17),
hexadecimal (0x11), or octal (021).
08
ECHO is off.
Press any key to continue . . .
如果当天没有从0开始,则不会出现此错误 我在这个脚本上找不到错误
答案 0 :(得分:2)
您收到错误的原因是因为八进制数(在/a
命令中使用set
标志时)的前缀是数字0(零)。
08
不是有效数字的原因是因为八进制数系统只包含8个符号(0-7),这意味着08
是不可能的。
答案 1 :(得分:0)
SET中不需要/ a仅用于为变量赋值:
set tsday=%edayn%
我从你的csd获得了
的月和日%csd:~4,2%
%csd:~7,2%
修改强>
如果你想杀死前导零,将每个字段分成两部分(数十和单位),然后分成十个字段: -
使用%variable:0=%
语法
@echo off
set csd=Fri 13/08/2013
set day1=%csd:~4,1%
set day2=%csd:~5,1%
set mo1=%csd:~7,1%
set mo2=%csd:~8,1%
set day=%day1:0=%%day2%
set mo=%mo1:0=%%mo2%
echo %day%/%mo%