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

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

[复制链接]
发表于 2020-9-24 10:17:35 | 显示全部楼层 |阅读模式
本帖最后由 暴牙弟 于 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了
发表于 2020-9-24 12:00:19 | 显示全部楼层
回复 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
发表于 2020-9-24 12:01:36 | 显示全部楼层
回复 1# 暴牙弟


    trash 是用的第三方命令行工具?还是调用的另外一个bat文件?
 楼主| 发表于 2020-9-24 12:17:02 | 显示全部楼层
回复 3# Batcher


    trash是第三方工具。
 楼主| 发表于 2020-9-24 12:21:54 | 显示全部楼层
回复 2# Batcher

trash执行完就退出了
发表于 2020-9-24 12:23:17 | 显示全部楼层
回复 5# 暴牙弟


    处理完第一个jpg文件退出的?还是处理完所有jpg文件退出的?
 楼主| 发表于 2020-9-24 12:24:39 | 显示全部楼层
本帖最后由 暴牙弟 于 2020-9-24 12:25 编辑

回复 2# Batcher

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

这个trash工具是把文件丢回收站而不是直接del 删除的。现在能否实现调用trash的同时且能执行下一步指令。
 楼主| 发表于 2020-9-24 14:20:38 | 显示全部楼层
本帖最后由 暴牙弟 于 2020-9-24 20:36 编辑

回复 6# Batcher

谢谢 trash的问题 用其他第三方代替了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 05:56 , Processed in 0.017492 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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