找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22325|回复: 5

[文本处理] [已解决]处理一批文件的BAT脚本为何只处理最后一个?

[复制链接]
发表于 2012-10-11 14:15:09 | 显示全部楼层 |阅读模式
我想用下面的代码处理一批文件,但就处理了最合一个,其它的不处理,不知怎么办,请帮帮我?
  1. @echo on
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir/a-d/b *.flv') do (
  4. set "var=%%i"
  5. set v=LoadPlugin("D:\greensoft\MeGUI\tools\ffms\ffms2.dll")
  6.   echo !v!)>!var!.avs
  7.   echo FFVideoSource("j:\!var!"  threads=1) >>!var!.avs
  8.   echo #deinterlace >>!var!.avs
  9.   echo crop(0  58  0  -26) >>!var!.avs
  10.   echo LanczosResize(720 416) # Lanczos (Sharp) >>!var!.avs
  11.   echo #denoise >>!var!.avs

  12. )
  13. pause
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-10-11 14:54:32 | 显示全部楼层
本帖最后由 wc726842270 于 2012-10-11 15:24 编辑

还是不想为什么了吧,有点困了

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir/a-d/b *.VBS') do call :edit %%i
  4. echo.
  5. set/p=处理完毕,请检验<NUL
  6. pause>nul&goto eof
  7. :edit
  8. set "var=%1"
  9. set v=LoadPlugin("D:\greensoft\MeGUI\tools\ffms\ffms2.dll")
  10.   echo !v!)>!var!.avs
  11.   echo FFVideoSource("j:\!var!"  threads=1) >>!var!.avs
  12.   echo #deinterlace >>!var!.avs
  13.   echo crop(0  58  0  -26) >>!var!.avs
  14.   echo LanczosResize(720 416) # Lanczos (Sharp) >>!var!.avs
  15.   echo #denoise >>!var!.avs
复制代码
看一下写的是否与你要的有出入
 楼主| 发表于 2012-10-11 17:27:46 | 显示全部楼层
谢谢,结果正是我想要的。
 楼主| 发表于 2012-10-12 09:07:43 | 显示全部楼层
不好意思。没仔细看,不能出我要的结果。生成的文件名不对。
发表于 2012-10-12 10:29:41 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%i in ('dir/a-d/b *.vbs') do (
  3.   (echo LoadPlugin^("D:\greensoft\MeGUI\tools\ffms\ffms2.dll"^)
  4.   echo FFVideoSource^("j:\%%i"  threads=1^)
  5.   echo #deinterlace
  6.   echo crop^(0  58  0  -26^)
  7.   echo LanczosResize^(720 416^) # Lanczos ^(Sharp^)
  8.   echo #denoise)>%%i.avs
  9. )
复制代码
将第二行中的vbs改成你需要的

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-10-12 10:42:54 | 显示全部楼层
本帖最后由 mrhxn 于 2012-10-12 10:49 编辑

谢谢,简洁,完全可以了。不过第一个改了一下也可以的:就是路径还是不能处理,
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir/a-d/b *.flv') do call :edit "%%i"
  4. echo.
  5. set/p=处理完毕,请检验<NUL&exit
  6. pause>nul&goto eof
  7. :edit
  8. set var=%1
  9. set v=LoadPlugin("D:\MeGUI\tools\ffms\ffms2.dll")
  10.   echo !v!>!var!.avs
  11.   echo FFVideoSource(!var!, threads=1) >>!var!.avs
  12.   echo #deinterlace >>!var!.avs
  13.   echo crop(0,58,0,-26) >>!var!.avs
  14.   echo LanczosResize(720,416) # Lanczos (Sharp) >>!var!.avs
  15.   echo #denoise >>!var!.avs
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 18:34 , Processed in 0.019868 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表