一本小书 发表于 2020-5-27 16:01:12

由坛友 liu_zhenfeng 帮助解决,非常感谢!

本帖最后由 一本小书 于 2020-5-27 18:13 编辑

D盘里有个文件夹ISO64bat,ISO64bat中还有文件夹及一些文件,其中里边有个MakeISO.bat文件。我想实现运行MakeISO.bat后能把ISO64bat本身及里边的所有文件全部删除(包括ISO64bat文件夹本身)。或是在MakeISO.bat中再调用D盘一个bat或cmd删除也行。苦于不会写代码,请朋友们伸手帮助一下谢谢!

我手动用以下代码可以完全删除,只是想实现自动删除;
@echo off

rmdir /s/q D:\ISO64bat

yxldh 发表于 2020-5-27 16:17:35

a.bat

@echo off
echo I am a.bat…
echo now run the b.bat
cd /d D:\test
start “” cmd /k call b.bat
echo over

b.bat

@echo off
echo I am b.bat…

执行后得到结果如下:

原本的cmd窗口中:

I am a.bat…
now run the b.bat
over

新的cmd窗口中:

I am b.bat…

这里简单解释下该命令的参数:

start “” cmd /k call b.bat
“”是一段字符串,代表新打开的cmd窗口的名字,可以随便起名。
/k是表示新打开的cmd窗口在执行完命令后保存打开状态,如果希望执行完就关闭窗口就使用/c
call b.bat表示call命令,即调用b.bat文件;该命令可以用”“括起来,即:”call b.bat”https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

窄口牛 发表于 2020-5-27 16:18:14

在你的批处理后面加上你的那句删除命令就行吧

一本小书 发表于 2020-5-27 16:43:28

窄口牛 发表于 2020-5-27 16:18
在你的批处理后面加上你的那句删除命令就行吧

在我的MakeISO.bat 最后添加 rmdir /s/q D:\ISO64bat 命令后结果是文件夹里边的文件全部删除了,可是ISO64bat文件夹本身没有删除,就难在这了,嘿嘿,感谢回复!

一本小书 发表于 2020-5-27 16:44:22

yxldh 发表于 2020-5-27 16:17
a.bat

@echo off


感谢回复,但我看不懂,

slore 发表于 2020-5-27 17:06:16

当前目录被占用了,生成清理bat脚本到tmp临时文件夹,sleep,timeout或ping -n延时几秒再删除。

liu_zhenfeng 发表于 2020-5-27 17:07:05

本帖最后由 liu_zhenfeng 于 2020-5-27 18:02 编辑



.

一本小书 发表于 2020-5-27 17:34:20

liu_zhenfeng 发表于 2020-5-27 17:07
win7下试验可用,请小心操作!

首先感谢你费心了,我的需求是:D盘有个文件夹1234,在1234这个文件夹中有目录及文件,其中有个111.bat,我想运行这个111.bat删除1234文件夹本身及里边的目录及文件。最重要是的删除1234文件夹本身。

一本小书 发表于 2020-5-27 17:47:20

slore 发表于 2020-5-27 17:06
当前目录被占用了,生成清理bat脚本到tmp临时文件夹,sleep,timeout或ping -n延时几秒再删除。

rmdir /s/q D:\ISO64bat 这个命令怎么加个等待时间代码呢。

liu_zhenfeng 发表于 2020-5-27 17:54:54

一本小书 发表于 2020-5-27 17:34
首先感谢你费心了,我的需求是:D盘有个文件夹1234,在1234这个文件夹中有目录及文件,其中有个111.bat, ...

增加echo rd /s /Q %folder% >>delFiles.bat


一本小书 发表于 2020-5-27 18:10:00

liu_zhenfeng 发表于 2020-5-27 17:54
增加echo rd /s /Q %folder% >>delFiles.bat

哥们你写的最好,感谢,测试成功,,

一本小书 发表于 2020-5-27 20:37:52

本帖最后由 一本小书 于 2020-5-27 20:50 编辑

liu_zhenfeng 发表于 2020-5-27 17:07
.
哈哈,哥们你还得辛苦了一下帮看看,当前目录及里边的文件确实删除了,但有个问题,脚本不退出还报错,截图如下:

我运行的脚本内容如下:这是一个自动给install.wim打包ISO的脚本;我都标注汉字了,最下边是你帮写的代码;我是用另一个cmd调用下边的bat;
@echo off
color 1f
cd /d "%~dp0"
SET CurDir=%CD%

echo 正在打包ISO文件

rem 设置需要打包的目录名,相当于光盘的根目录
set intdir=%CurDir%\CDROM

rem 设置光盘的引导文件MBR
set BIOSFile=%CurDir%\bios.bin

rem 设置光盘的引导文件UEFI
set UEFIFile=%CurDir%\uefi.bin

rem 当前目录下输出的文件名 (文件名可以改,但要用长文件名,不支持短文件名,支持汉字与英文名)
set output=%CurDir%\Windows 10_Ent_32bit_My_2004_19041.iso

rem 设置光盘的卷标
set jb=UEFI/BIOS_ENT_32bit_My

rem 本行命令适用于制作BIOS/UEFI 双启动 的ISO    微软原版系统光盘采用的就是这种方法
OSCDimg -h -m -o -u2 -g -udfver102 -l%jb% -bootdata:2#p00,e,b"%BIOSFile%"#pEF,e,b"%UEFIFile%" "%intdir%" "%output%"

cls&echo ISO生成完毕!
ping -n 3 127.0.0.1>nul

echo 正在复制Windows 10_Ent_32bit_My_2004_19041.iso到D盘10_ISO目录下;
Xcopy /y"D:\ISO32bat\Windows 10_Ent_32bit_My_2004_19041.iso" "D:\10_ISO\"

rem 删除当前目录下所有目录及文件,并删除当前目录本身
set folder="%cd%"
cd..
echo del %folder%\*.* /q >delFiles.bat
echo rd /s /Q %folder% >>delFiles.bat
echo rd %folder% >>delFiles.bat
echo del delFiles.bat >>delFiles.bat
delFiles.bat

exit

看有没有办法处理,其实不误使用,目的已经达到,当前目录以及目录下的所有文件全部已经删除,只是脚本报错不退出;辛苦你了,,

liu_zhenfeng 发表于 2020-5-27 21:10:34

本帖最后由 liu_zhenfeng 于 2020-5-27 21:18 编辑

echo exit >>delFiles.bat
加在
delFiles.bat

exit前面

如过不起作用可能是调用导致的,试试改start xxx.bat调用能不能解决。

一本小书 发表于 2020-5-27 21:17:52

liu_zhenfeng 发表于 2020-5-27 21:10
上面代码直接运行没问题,可能是调用导致的,试试用start xxx.bat调用能不能解决。

我用cmd是这种方式运行bat的; CALL "%~DP0ISO64bat\MakeISO.bat" ; 是CALL命令的原因吧;好像是它执行完后返回 ?这个cmd也在D盘,它用CALL "%~DP0ISO64bat\MakeISO.bat"命令运行D盘ISO64bat文件夹下的MakeISO.bat文件,MakeISO.bat内容就是上边的代码。

liu_zhenfeng 发表于 2020-5-27 21:19:24

echo exit >>delFiles.bat
加在
delFiles.bat

exit前面

如过不起作用可能是调用导致的,试试改start xxx.bat调用能不能解决。

一本小书 发表于 2020-5-27 21:23:11

liu_zhenfeng 发表于 2020-5-27 21:19
echo exit >>delFiles.bat
加在
delFiles.bat


我用start xxx.bat调用方式去测试,感谢!

一本小书 发表于 2020-5-27 21:38:47

本帖最后由 一本小书 于 2020-5-31 06:33 编辑

liu_zhenfeng 发表于 2020-5-27 21:19
echo exit >>delFiles.bat
加在
delFiles.bat

经过测试就是我调用语句造成的,你的bat特别好使,我调用命令CAll的原因,它执行完指令后返回到开始执行的脚本,是我开始脚本的问题,经修改目前非常好用!谢谢!
页: [1]
查看完整版本: 由坛友 liu_zhenfeng 帮助解决,非常感谢!