[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理for语句执行exe程序完成后不会继续下一条指令

本帖最后由 暴牙弟 于 2020-9-24 20:35 编辑

代码如下,后来我给两个for直接加入 echo 或者pause ,然后在cmd 里执行bat文件,结果发现,第一个for跑完就不会执行pause或者echo  更不用说第二段for了。请问大家这个怎么解决啊。
  1. @echo on
  2. for /f "delims=" %%i in ('dir /a-d /os /b *.jpg') do (
  3. md %%~ni
  4. copy %%~ni.jpg %~dp0\%%~ni\cover.jpg
  5. copy %%~ni.jpg %~dp0\%%~ni\small_cover_land.jpg
  6. copy %%~ni.jpg %~dp0\%%~ni\cover_land.jpg
  7. copy %%~ni.jpg %~dp0\%%~ni\small_cover.jpg
  8. "C:\Program Files\MKVToolNix\mkvmerge.exe" --ui-language zh_CN --output ^"%~dp0\%%~ni^(1^).mkv^" --audio-tracks 1 --no-subtitles --language 0:und --no-chapters --track-name 0: --default-track 0:yes --language 1:eng --track-name 1: --default-track 1:yes ^"^(^" ^"%~dp0\%%~ni.mkv^" ^"^)^" --language 0:chi ^"^(^" ^"%~dp0\%%~ni.ass^" ^"^)^" --attachment-name cover.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\cover.jpg^" --attachment-name cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\cover_land.jpg^" --attachment-name small_cover.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\small_cover.jpg^" --attachment-name small_cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\small_cover_land.jpg^" --track-order 0:0,0:1,1:0
  9. trash %%~ni
  10. trash %%~ni.jpg
  11. trash %%~ni.mkv
  12. trash %%~ni.ass
  13. )
  14. for /f "delims=" %%i in ('dir /a-d /os /b *.mkv') do (
  15.     set "foo=%%~nxi"
  16.     set foo=!foo:^(1^)=!
  17.     set foo=!foo:^(1^) =!
  18.     ren "%%~fi" "!foo!"
  19. )
  20. pause
复制代码
发现问题所在了,是trash这个第三方工具搞的鬼。主要是把文件删除到回收站,而不是直接del,郁闷的要死,现在换成binit,就ok了

回复 1# 暴牙弟
  1. for /f "delims=" %%i in ('dir /a-d /os /b *.jpg') do (
  2. echo 正在处理文件 %%i
  3. md %%~ni
  4. copy %%~ni.jpg %~dp0\%%~ni\cover.jpg
  5. copy %%~ni.jpg %~dp0\%%~ni\small_cover_land.jpg
  6. copy %%~ni.jpg %~dp0\%%~ni\cover_land.jpg
  7. copy %%~ni.jpg %~dp0\%%~ni\small_cover.jpg
  8. "C:\Program Files\MKVToolNix\mkvmerge.exe" --ui-language zh_CN --output ^"%~dp0\%%~ni^(1^).mkv^" --audio-tracks 1 --no-subtitles --language 0:und --no-chapters --track-name 0: --default-track 0:yes --language 1:eng --track-name 1: --default-track 1:yes ^"^(^" ^"%~dp0\%%~ni.mkv^" ^"^)^" --language 0:chi ^"^(^" ^"%~dp0\%%~ni.ass^" ^"^)^" --attachment-name cover.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\cover.jpg^" --attachment-name cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\cover_land.jpg^" --attachment-name small_cover.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\small_cover.jpg^" --attachment-name small_cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"%~dp0\%%~ni\small_cover_land.jpg^" --track-order 0:0,0:1,1:0
  9. echo mkvmerge 处理完毕
  10. trash %%~ni
  11. trash %%~ni.jpg
  12. trash %%~ni.mkv
  13. trash %%~ni.ass
  14. echo trash 处理完毕
  15. )
  16. echo for命令完毕
复制代码
请参考Q-01观察一下在哪一步退出的:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# 暴牙弟


    trash 是用的第三方命令行工具?还是调用的另外一个bat文件?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    trash是第三方工具。

TOP

回复 2# Batcher

trash执行完就退出了

TOP

回复 5# 暴牙弟


    处理完第一个jpg文件退出的?还是处理完所有jpg文件退出的?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 暴牙弟 于 2020-9-24 12:25 编辑

回复 2# Batcher

我发现了 去掉trash,就能执行下一步了。

这个trash工具是把文件丢回收站而不是直接del 删除的。现在能否实现调用trash的同时且能执行下一步指令。

TOP

本帖最后由 暴牙弟 于 2020-9-24 20:36 编辑

回复 6# Batcher

谢谢 trash的问题 用其他第三方代替了

TOP

返回列表