批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[其他] 批处理命令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

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

TOP

你的思路:
  1. @echo off
  2. set "n=0"
  3. set "t="
  4. for %%a in (T*) do set /a n+=1
  5. for /l %%a in (1,1,%n%) do call set "t=%%t%%+T%%a"
  6. copy /b "%t:~1%" new
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

简化之后的思路:
  1. @echo off
  2. set "t="
  3. for %%a in (T*) do (
  4.     call set "t=%%t%%+%%a"
  5. )
  6. copy /b "%t:~1%" new
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 2# lihui612ld


    额...大意了

TOP

回复 4# Batcher


    嗯嗯 ,不过copy /b "%t:~1%" new 不能加""不然会提示系统找不到文件

TOP

回复 4# Batcher

这样就不能保证按T后面的数字升序合并了
提供bat代写,为你省时省力省事,支付宝扫码头像支付
QQ: 956535081

TOP

本帖最后由 小渣飞 于 2019-8-12 16:24 编辑

回复 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
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

回复 7# zaqmlp


    脑壳要炸了

TOP

回复 8# 小渣飞


    3楼的代码也不行是吗?4楼的代码不知道你需要“按照顺序合并”
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 10# Batcher


    试过了也不行=-=-=-=-=--=-=-=

TOP

回复 4# Batcher

call set "t=%%t%%+%%a"

这里的call可以省略吗?

TOP

回复 12# netdzb


    不可以
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 11# 小渣飞


    测试3楼代码时使用的完整代码、测试数据、测试结果、期望结果,打包压缩传上来我试试。
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

本帖最后由 小渣飞 于 2019-8-13 17:10 编辑

回复 14# Batcher

解决了,原来是我大意了把开头的cd /d "%~dp0"给去掉了结果造成了findstr找不到标签导致type无法写出数据给debug......
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

返回列表