无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4479|回复: 16

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

[复制链接]
发表于 2020-5-27 16:01:12 | 显示全部楼层 |阅读模式
本帖最后由 一本小书 于 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
发表于 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”

点评

感谢回复,但我看不懂,  详情 回复 发表于 2020-5-27 16:44

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 感谢回复!

查看全部评分

回复

使用道具 举报

发表于 2020-5-27 16:18:14 来自手机 | 显示全部楼层
在你的批处理后面加上你的那句删除命令就行吧

点评

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

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 感谢回复!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 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 | 显示全部楼层

感谢回复,但我看不懂,
回复

使用道具 举报

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

点评

rmdir /s/q D:\ISO64bat 这个命令怎么加个等待时间代码呢。  详情 回复 发表于 2020-5-27 17:47

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 感谢回复!

查看全部评分

回复

使用道具 举报

发表于 2020-5-27 17:07:05 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2020-5-27 18:02 编辑



.

点评

哈哈,哥们你还得辛苦了一下帮看看,当前目录及里边的文件确实删除了,但有个问题,脚本不退出还报错,截图如下: [attachimg]458134[/attachimg] 我运行的脚本内容如下:这是一个自动给install.wim打包ISO的脚本  详情 回复 发表于 2020-5-27 20:37
首先感谢你费心了,我的需求是:D盘有个文件夹1234,在1234这个文件夹中有目录及文件,其中有个111.bat,我想运行这个111.bat删除1234文件夹本身及里边的目录及文件。最重要是的删除1234文件夹本身。  详情 回复 发表于 2020-5-27 17:34

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 感谢回复!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-5-27 17:34:20 | 显示全部楼层
liu_zhenfeng 发表于 2020-5-27 17:07
win7下试验可用,请小心操作!

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

点评

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

使用道具 举报

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

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

使用道具 举报

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

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

删除当前文件夹.jpg
删除当前文件夹.rar (211 Bytes, 下载次数: 101)

点评

哥们你写的最好,感谢,测试成功,,  详情 回复 发表于 2020-5-27 18:10

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 感谢您,辛苦了!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 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 编辑

哈哈,哥们你还得辛苦了一下帮看看,当前目录及里边的文件确实删除了,但有个问题,脚本不退出还报错,截图如下:
Screenshot_1.jpg
我运行的脚本内容如下:这是一个自动给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

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

回复

使用道具 举报

发表于 2020-5-27 21:10:34 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2020-5-27 21:18 编辑

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

exit前面

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

点评

我用cmd是这种方式运行bat的; CALL "%~DP0ISO64bat\MakeISO.bat" ; 是CALL命令的原因吧;好像是它执行完后返回 ?这个cmd也在D盘,它用CALL "%~DP0ISO64bat\MakeISO.bat"命令运行D盘ISO64bat文件夹下的MakeISO.bat文  详情 回复 发表于 2020-5-27 21:17

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 辛苦了,非常感谢!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 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内容就是上边的代码。
回复

使用道具 举报

发表于 2020-5-27 21:19:24 | 显示全部楼层
echo exit >>delFiles.bat
加在
delFiles.bat

exit前面

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

点评

两种方式都测试没好使,在最后一行添加 DEL /F "%~0" 就看不到那个了,反正它已经完成任务了,休息吧太晚了,今天你辛苦了。。非常感谢;  详情 回复 发表于 2020-5-27 21:38
我用start xxx.bat调用方式去测试,感谢!  详情 回复 发表于 2020-5-27 21:23

评分

参与人数 1无忧币 +5 收起 理由
一本小书 + 5 辛苦了,,,

查看全部评分

回复

使用道具 举报

 楼主| 发表于 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的原因,它执行完指令后返回到开始执行的脚本,是我开始脚本的问题,经修改目前非常好用!谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 21:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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