标题: [文件操作] 【已解决】批处理for语句执行exe程序完成后不会继续下一条指令 [打印本页]
作者: 暴牙弟 时间: 2020-9-24 10:17 标题: 【已解决】批处理for语句执行exe程序完成后不会继续下一条指令
本帖最后由 暴牙弟 于 2020-9-24 20:35 编辑
代码如下,后来我给两个for直接加入 echo 或者pause ,然后在cmd 里执行bat文件,结果发现,第一个for跑完就不会执行pause或者echo 更不用说第二段for了。请问大家这个怎么解决啊。- @echo on
-
- for /f "delims=" %%i in ('dir /a-d /os /b *.jpg') do (
-
- md %%~ni
- copy %%~ni.jpg %~dp0\%%~ni\cover.jpg
- copy %%~ni.jpg %~dp0\%%~ni\small_cover_land.jpg
- copy %%~ni.jpg %~dp0\%%~ni\cover_land.jpg
- copy %%~ni.jpg %~dp0\%%~ni\small_cover.jpg
-
- "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
-
- trash %%~ni
- trash %%~ni.jpg
- trash %%~ni.mkv
- trash %%~ni.ass
-
- )
-
-
- for /f "delims=" %%i in ('dir /a-d /os /b *.mkv') do (
-
- set "foo=%%~nxi"
-
- set foo=!foo:^(1^)=!
-
- set foo=!foo:^(1^) =!
-
- ren "%%~fi" "!foo!"
-
- )
-
- pause
复制代码
发现问题所在了,是trash这个第三方工具搞的鬼。主要是把文件删除到回收站,而不是直接del,郁闷的要死,现在换成binit,就ok了
作者: Batcher 时间: 2020-9-24 12:00
回复 1# 暴牙弟 - for /f "delims=" %%i in ('dir /a-d /os /b *.jpg') do (
- echo 正在处理文件 %%i
- md %%~ni
- copy %%~ni.jpg %~dp0\%%~ni\cover.jpg
- copy %%~ni.jpg %~dp0\%%~ni\small_cover_land.jpg
- copy %%~ni.jpg %~dp0\%%~ni\cover_land.jpg
- copy %%~ni.jpg %~dp0\%%~ni\small_cover.jpg
-
- "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
- echo mkvmerge 处理完毕
- trash %%~ni
- trash %%~ni.jpg
- trash %%~ni.mkv
- trash %%~ni.ass
- echo trash 处理完毕
- )
- echo for命令完毕
复制代码
请参考Q-01观察一下在哪一步退出的:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: Batcher 时间: 2020-9-24 12:01
回复 1# 暴牙弟
trash 是用的第三方命令行工具?还是调用的另外一个bat文件?
作者: 暴牙弟 时间: 2020-9-24 12:17
回复 3# Batcher
trash是第三方工具。
作者: 暴牙弟 时间: 2020-9-24 12:21
回复 2# Batcher
trash执行完就退出了
作者: Batcher 时间: 2020-9-24 12:23
回复 5# 暴牙弟
处理完第一个jpg文件退出的?还是处理完所有jpg文件退出的?
作者: 暴牙弟 时间: 2020-9-24 12:24
本帖最后由 暴牙弟 于 2020-9-24 12:25 编辑
回复 2# Batcher
我发现了 去掉trash,就能执行下一步了。
这个trash工具是把文件丢回收站而不是直接del 删除的。现在能否实现调用trash的同时且能执行下一步指令。
作者: 暴牙弟 时间: 2020-9-24 14:20
本帖最后由 暴牙弟 于 2020-9-24 20:36 编辑
回复 6# Batcher
谢谢 trash的问题 用其他第三方代替了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |