本帖最后由 nnszuo 于 2014-11-12 18:06 编辑
下面这个批处理最后一个echo的结果应该是5 5555555,是哪里出错了,该怎么写- @echo off
- (
- echo 1111111
- echo 2222222
- echo 3333333
- echo 4444444
- echo 5555555
- )>6.txt
- setlocal enabledelayedexpansion
- set t=0
- for /f "delims=" %%c in ('findstr /v "kk" 6.txt') do (
- set /a t+=1
- set %t%=%%c
- echo !t! !%t%!
- )
- echo !t! !%t%!
- pause
复制代码 这个批处理的全部代码是这样的- @echo off
- (
- echo 1111111
- echo 2222222
- echo 3333333
- echo 4444444
- echo 5555555
- )>6.txt
- (
- echo 6666666
- echo 7777777
- echo 8888888
- echo 9999999
- echo 0000000
- )>7.txt
- setlocal enabledelayedexpansion
- set t=0
- set y=100
- for /f "delims=" %%c in ('findstr /v "kk" 6.txt') do (
- set /a t+=1
- set %t%=%%c
- echo !t! !%t%!
- )
- for /f "delims=" %%i in ('findstr /v "kk" 7.txt') do (
- set /a y+=1
- set %y%=%%i
- echo !y! !%y%!
- )
- cd.>8.txt
- if not "!t!"=="0" (
- echo !%t%! !%y%! >>8.txt
- set /a t-=1
- set /a y-=1
- )
- pause
复制代码 用数字作为变量是方便后续调用,以前写了个批量拖拽重命名批处理,其中部分代码是下面内容,没想到用了for命令后变量无法正常调用了,amwfjhh提供的call 可以解决这个问题,不知道有没有其他思路- @echo off
- setlocal EnableDelayedExpansion
- if "%~f1"=="" exit
- cd /d "%~dp1"
- set s=1
- set %s%=%~f1
-
-
- :a
- if not exist "%~f1" (goto s)
- set/a s+=1
- set %s%=%~f1
- shift /1&goto :a
-
- :s
- if not "%s%"=="0" (
- echo !%s%!
- set/a s-=1
- goto :s
- )
- pause
复制代码
|