标题: [其他] 批处理命令for /l 报错 [打印本页]
作者: 小渣飞 时间: 2019-8-12 11:20 标题: 批处理命令for /l 报错
请问一下问为什么for /l 会报错此时不应该有(1
for %%a in (T*) do "set /a n+=1"
for /l %%a (1,1,%n%) do call set "t=%%t%%+T%%~a"
copy /b "%t:~1%" new
作者: lihui612ld 时间: 2019-8-12 13:00
for %%a in (T*) do "set /a n+=1"
for /l %%a in (1,1,%n%) do call set "t=%%t%%+T%%~a"
copy /b "%t:~1%" new
语法错了,没有in
作者: Batcher 时间: 2019-8-12 13:06
你的思路:- @echo off
- set "n=0"
- set "t="
- for %%a in (T*) do set /a n+=1
- for /l %%a in (1,1,%n%) do call set "t=%%t%%+T%%a"
- copy /b "%t:~1%" new
复制代码
作者: Batcher 时间: 2019-8-12 13:06
简化之后的思路:- @echo off
- set "t="
- for %%a in (T*) do (
- call set "t=%%t%%+%%a"
- )
- copy /b "%t:~1%" new
复制代码
作者: 小渣飞 时间: 2019-8-12 14:05
回复 2# lihui612ld
额...大意了
作者: 小渣飞 时间: 2019-8-12 14:07
回复 4# Batcher
嗯嗯 ,不过copy /b "%t:~1%" new 不能加""不然会提示系统找不到文件
作者: zaqmlp 时间: 2019-8-12 14:32
回复 4# Batcher
这样就不能保证按T后面的数字升序合并了
作者: 小渣飞 时间: 2019-8-12 16:07
回复 4# Batcher
用了您的方法加进去了可是最后的if判断为什么判断不出来呢没错呀还有就是好像并没有按照顺序合并=-=- set "a_t=0"
- pushd %tmp%\~keyboard
- :add_file
- rd/s/q t1.17 2>nul
- for /l %%a in (1 1 3) do (
- for /f "delims=:" %%b in ('type "%~f0"^|findstr /n "^:begin_%%a$"') do (
- for /f "delims=:" %%c in ('type "%~f0"^|findstr /n "^:end_%%a$"') do call :loop %%a %%b %%c
- )
-
- )
- pause&exit
- :loop
- echo;%1[%2 %3]
- (for /f "tokens=1* delims=:" %%d in ('type "%~f0"^|findstr /n .*') do (
- if %%d gtr %2 (if %%d lss %3 (echo;%%e))
- ))>t.t
- md t1.17 >nul
- pushd t1.17
- type %tmp%\~keyboard\t.t|debug>nul
- popd
- set "t=0"
- for %%a in (t1.17\T*) do (call set "t=%%t%%+%%a")
- copy/b t1.17\%t:~1% new
- set /a "a_t+=1"
- echo %a_t%
- if "a_t"=="1" (ren new 1.exe)
- if "a_t"=="2" (ren new 2.exe)
- if "a_t"=="3" (ren new 3.bmp)
- rd/s/q t1.17
- exit/b
-
-
-
- :begin_1
- data
- :end_1
- :begin_2
- data
- :end_2
- :begin_3
- data
- :end_3
复制代码
作者: 小渣飞 时间: 2019-8-12 16:26
回复 7# zaqmlp
脑壳要炸了
作者: Batcher 时间: 2019-8-12 16:40
回复 8# 小渣飞
3楼的代码也不行是吗?4楼的代码不知道你需要“按照顺序合并”
作者: 小渣飞 时间: 2019-8-12 17:11
回复 10# Batcher
试过了也不行=-=-=-=-=--=-=-=
作者: netdzb 时间: 2019-8-12 19:24
回复 4# Batcher
call set "t=%%t%%+%%a"
这里的call可以省略吗?
作者: Batcher 时间: 2019-8-12 20:38
回复 12# netdzb
不可以
作者: Batcher 时间: 2019-8-12 20:53
回复 11# 小渣飞
测试3楼代码时使用的完整代码、测试数据、测试结果、期望结果,打包压缩传上来我试试。
作者: 小渣飞 时间: 2019-8-13 10:01
回复 14# Batcher
解决了,原来是我大意了把开头的cd /d "%~dp0"给去掉了结果造成了findstr找不到标签导致type无法写出数据给debug......
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |