昨天看贴子有列表输出的,仔细想了下办法,做了个简单工具,在精简过程中发现set /a的一些特性,提出来大家探讨一下
set /a var1=(x...),var2=var1(x...),var3=var2(x...)
计算过程中,不因为一行命令的延缓约束来传送变量
例如以上,var2的计算过程中引用的var1就是前式结果
此例在for中依然有效,但call之后就不行了,不知什么原因
set /a var1=(x...),var2=var1(x...),var3=var2(x...)
计算过程中,不因为一行命令的延缓约束来传送变量
例如以上,var2的计算过程中引用的var1就是前式结果
此例在for中依然有效,但call之后就不行了,不知什么原因
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION 2>nul 3>nul
set arg= 1
:cfgf
if "%~1" == "" (set /p df=datafile:) else set df="%1"
set df=%df:"=%&&if not exist "%df%" goto cfgf
cls&echo file "%df%" line:10.
for /f "usebackq delims=" %%i in ("%df%") do set /a vvv+=1,1/(vvv%%10)&&echo %%i||echo.&&goto cfgc
:cfgc
set /p column=column:
set /a 0/column||goto cfgc
for /l %%i in (1,1,%column%) do set /p wcol%%i=col%%i:&&set /a 0/!wcol%%i!||goto cfgc
set /a wcol0=!wcol%column%!
cls&echo FILE:%df% COLUMN:%column%
for /l %%i in (1,1,%column%) do echo COL%%i WIDTH:!wcol%%i!byte
echo setup ...&pause>nul
cls&for /f "usebackq" %%i in ("%df%") do (
set /a xxx+=1,zzz=xxx%%%column%
call set /a yyy=%%wcol!zzz!%%
set rga=%%i%arg%
call set/p=%%rga:~0,!yyy!%%<nul
set/p= <nul
set /a 1/zzz||echo.
)
echo/&pause
