我在执行下面的BAT文件时正常
而在执行下面的BAT文件就显示输入行太长。
也就是输入行最长是2048个字!
随便说下,在CMD里执行 SET /A 39%16会得到39除16的余数7,而在BAT文件里执行 SET /A 39%16会得到396,因为在BAT文件里系统启用了默认的%0~~%9 而%1是空的话执行 SET /A 39%16就会得到396,如果要在BAT里取余应该用下面类似的命令来取余:
SET A=16
SET/A 39%%A%
在执行时系统会把%A%替换成16后执行取余操作!
@echo off
setlocal ENABLEDELAYEDEXPANSION
set a=22
for /l %%c in (1,1,1019) do set a=!a!22
call :a !a!
goto :eof
:a
set gs=
set c=%1
:b
set d=%c:~-2%
set c=%c:~0,-2%
if %d%*==22* set/a gs+=2&goto b
echo !gs!
goto :eof而在执行下面的BAT文件就显示输入行太长。
@echo off
setlocal ENABLEDELAYEDEXPANSION
set a=22
for /l %%c in (1,1,1020) do set a=!a!22
call :a !a!
goto :eof
:a
set gs=
set c=%1
:b
set d=%c:~-2%
set c=%c:~0,-2%
if %d%*==22* set/a gs+=2&goto b
echo !gs!
goto :eof也就是输入行最长是2048个字!
随便说下,在CMD里执行 SET /A 39%16会得到39除16的余数7,而在BAT文件里执行 SET /A 39%16会得到396,因为在BAT文件里系统启用了默认的%0~~%9 而%1是空的话执行 SET /A 39%16就会得到396,如果要在BAT里取余应该用下面类似的命令来取余:
SET A=16
SET/A 39%%A%
在执行时系统会把%A%替换成16后执行取余操作!
