![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-14 17:22 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【已解决】删除批处理所在目录的大难题 |
| 可打印版本 4,250 / 24 |
| 第1楼 heicai | 发表于 2007-04-17 22:45 |
| 中级用户 发帖 156 积分 385 | |
|
【已解决】删除批处理所在目录的大难题 例如批处理del.bat文件在C:\Documents and Settings\Administrator\桌面\Bat\目录下。
我想删除Bat文件夹与其自身del.bat文件。 因为del.bat自身在运行所以无法删除该文件夹。哎 不知是否有牛人能帮其实现! ____________________以上已解决————————————————— [ Last edited by heicai on 2007-4-17 at 01:46 PM ] |
|
| 第2楼 flyinspace | 发表于 2007-04-17 23:33 |
| 银牌会员 发帖 517 积分 1,206 | |
|
方法是可以乱来的。
不一定要局限于在本地建立文件。 可以在临时文件建立一个新的del文件啊。 内容如下: cscript /nologo delay.vbs rd /s /q "C:\Documents and Settings\Administrator\桌面\Bat" del %0 在del文件中最后添加如下语句 echo WSCRIPT.sleep(5000)>delay.vbs start %tmp%\del.bat |
|
| 第3楼 bw070 | 发表于 2007-04-18 00:14 |
| 中级用户 发帖 137 积分 292 | |
|
以d:/1为例 你那个太长了我就不大了 ; )
@echo off echo rmdir D:\1 /s /q >c:\1.bat echo del c:\1.bat >>c:\1.bat echo Windows Registry Editor Version 5.00>r.dll echo >>r.dll echo "Del"="C:\\1.bat">>r.dll regedit -s r.dll echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ echo ★ ☆ echo ☆ 文件夹在重新启动或者注销后删除! ★ echo ★ ---------任意键退出!!---------- ☆ echo ☆ ★ echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ pause del r.dll del d:\1\1.bat 见笑了 没有想出来立即删除那个正在运行的文件夹 不过想出个办法在注销或重新启动后彻底删除所有产生文件和目标文件夹 [ Last edited by bw070 on 2007-4-17 at 11:19 AM ] |
|
| 第4楼 everest79 | 发表于 2007-04-18 00:34 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
终止了explorer进程再删
|
|
| 第5楼 flyinspace | 发表于 2007-04-18 01:07 |
| 银牌会员 发帖 517 积分 1,206 | |
|
我寒,有简单的方法都不用,
全部都用好复杂的方法。 |
|
| 第6楼 heicai | 发表于 2007-04-18 01:12 |
| 中级用户 发帖 156 积分 385 | |
Originally posted by flyinspace at 2007-4-17 10:33 AM: 谢谢你的方法。我试了很好用! 不过我还有个问题,假如bat文件夹假如是随机不定的名称,有办法获取到此文件夹名称吗? |
|
| 第7楼 flyinspace | 发表于 2007-04-18 01:16 |
| 银牌会员 发帖 517 积分 1,206 | |
|
有是有,
不过最少要知道这个文件夹所在的地方吧? 要不一下子找出有许多bat文件的文件夹然后你一下全删完。不是要郁闷死了么。 或知道要删除的bat的文件名。。所在盘符也行。 不过。。。若多余一个,还是需要人工判断。。 |
|
| 第8楼 everest79 | 发表于 2007-04-18 01:19 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
批处理所在目录为"%~dp0"
|
|
| 第9楼 heicai | 发表于 2007-04-18 01:20 |
| 中级用户 发帖 156 积分 385 | |
|
我要实现的功能是这样的:
先将bat文件夹分别复制到桌面的a1,b2,c3,d4,haha,test,temp,……等等这些各个文件夹内。然后做一些工作后将它们文件夹全部删除。 C:\Documents and Settings\Administrator\桌面\temp\ 要是能获取temp这个位置的文件夹设为一个环境变量就好了。不知道如何能截到这部分文件夹名称 |
|
| 第10楼 everest79 | 发表于 2007-04-18 01:25 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
你在讲述你要求是最好先整理下思路,这样大家也好帮你,你复制到各个目录下的工作是由脚本还是手工来完成的?若脚本,你在此时即可建立删除列表;你复制完成后各目录执行的操作是手工启动还是由先前的复制脚本启动,若是脚本启动,那么,你前边的删除列表可以是以变量形式存在的,再下来就是你的删除要求,是最后一次性删除还是按工作顺序逐个删除,若是按工作顺序,那我前边讲的基本上没用,嘿嘿
|
|
| 第11楼 flyinspace | 发表于 2007-04-18 01:27 |
| 银牌会员 发帖 517 积分 1,206 | |
|
set 查看环境变量的地方。。
里面好象有你需要的东西。。。。你的意思我不太清楚。 |
|
| 第12楼 heicai | 发表于 2007-04-18 01:30 |
| 中级用户 发帖 156 积分 385 | |
Originally posted by everest79 at 2007-4-17 12:25 PM: 每个文件夹下的批处理都是点击后删除那个文件夹。 |
|
| 第13楼 everest79 | 发表于 2007-04-18 01:35 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
那问题回到第8楼,你结合第二楼的方法来完成,你可以将"%~dp0"当作参数来启动del.bat
|
|
| 第14楼 heicai | 发表于 2007-04-18 01:41 |
| 中级用户 发帖 156 积分 385 | |
|
对论坛内帖子进行考古后终于找到了答案!同时也万分感谢回答我问题的这些朋友,由于我等级低,今天的加分满了,不好意思
就是不知道%%~nxp 这个是什么意思? [ Last edited by heicai on 2007-4-17 at 12:42 PM ] |
|
| 第15楼 flyinspace | 发表于 2007-04-18 01:45 |
| 银牌会员 发帖 517 积分 1,206 | |
|
其实我觉得10楼的方法就很不错。。
rem 建立复制,删除列表,给一个例子。 echo %userprofile%\桌面\temp>>del.txt ::……你自己写完这个列表。 for /f "tokens=* " %%i in (del.txt) do ( rem 防止误删除文件 if exist "%%i" ( xcopy “你的文件” “%%i” start “%%i\文件名" ) ) for /f "tokens=* " %%i in (del.txt) do ( dir /b /s "%%i" | find /i "你复制的文件" if not errorlevel 1 echo "%%i\你复制的文件" ) 本脚本未经过调试,实际使用时,若最后一句的echo 正确则可以改为rd /s /q |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |