|
heicai
中级用户
  
积分 385
发帖 156
注册 2007-1-19
状态 离线
|
『楼 主』:
【已解决】删除批处理所在目录的大难题
使用 LLM 解释/回答一下
例如批处理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 ]
|
|
2007-4-17 22:45 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
方法是可以乱来的。
不一定要局限于在本地建立文件。
可以在临时文件建立一个新的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
|

知,不觉多。不知,乃求知 |
|
2007-4-17 23:33 |
|
|
bw070
中级用户
  
积分 292
发帖 137
注册 2007-4-3
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
以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 ]
|
|
2007-4-18 00:14 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
|
2007-4-18 00:34 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
|
2007-4-18 01:07 |
|
|
heicai
中级用户
  
积分 385
发帖 156
注册 2007-1-19
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
Originally posted by flyinspace at 2007-4-17 10:33 AM:
方法是可以乱来的。
不一定要局限于在本地建立文件。
可以在临时文件建立一个新的del文件啊。
内容如下:
cscript /nologo delay.vbs
rd /s /q "C: ...
谢谢你的方法。我试了很好用!
不过我还有个问题,假如bat文件夹假如是随机不定的名称,有办法获取到此文件夹名称吗?
|
|
2007-4-18 01:12 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
有是有,
不过最少要知道这个文件夹所在的地方吧?
要不一下子找出有许多bat文件的文件夹然后你一下全删完。不是要郁闷死了么。
或知道要删除的bat的文件名。。所在盘符也行。
不过。。。若多余一个,还是需要人工判断。。
|

知,不觉多。不知,乃求知 |
|
2007-4-18 01:16 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
|
2007-4-18 01:19 |
|
|
heicai
中级用户
  
积分 385
发帖 156
注册 2007-1-19
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
我要实现的功能是这样的:
先将bat文件夹分别复制到桌面的a1,b2,c3,d4,haha,test,temp,……等等这些各个文件夹内。然后做一些工作后将它们文件夹全部删除。
C:\Documents and Settings\Administrator\桌面\temp\
要是能获取temp这个位置的文件夹设为一个环境变量就好了。不知道如何能截到这部分文件夹名称
|
|
2007-4-18 01:20 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
你在讲述你要求是最好先整理下思路,这样大家也好帮你,你复制到各个目录下的工作是由脚本还是手工来完成的?若脚本,你在此时即可建立删除列表;你复制完成后各目录执行的操作是手工启动还是由先前的复制脚本启动,若是脚本启动,那么,你前边的删除列表可以是以变量形式存在的,再下来就是你的删除要求,是最后一次性删除还是按工作顺序逐个删除,若是按工作顺序,那我前边讲的基本上没用,嘿嘿
|
|
2007-4-18 01:25 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
set 查看环境变量的地方。。
里面好象有你需要的东西。。。。你的意思我不太清楚。
|

知,不觉多。不知,乃求知 |
|
2007-4-18 01:27 |
|
|
heicai
中级用户
  
积分 385
发帖 156
注册 2007-1-19
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
Originally posted by everest79 at 2007-4-17 12:25 PM:
你在讲述你要求是最好先整理下思路,这样大家也好帮你,你复制到各个目录下的工作是由脚本还是手工来完成的?若脚本,你在此时即可建立删除列 ...
每个文件夹下的批处理都是点击后删除那个文件夹。
|
|
2007-4-18 01:30 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第 13 楼』:
使用 LLM 解释/回答一下
那问题回到第8楼,你结合第二楼的方法来完成,你可以将"%~dp0"当作参数来启动del.bat
|
|
2007-4-18 01:35 |
|
|
heicai
中级用户
  
积分 385
发帖 156
注册 2007-1-19
状态 离线
|
『第 14 楼』:
使用 LLM 解释/回答一下
对论坛内帖子进行考古后终于找到了答案!同时也万分感谢回答我问题的这些朋友,由于我等级低,今天的加分满了,不好意思
@echo off
for %%p in ("%cd%") do set temp=%%~nxp
echo %temp%
pause
就是不知道%%~nxp 这个是什么意思?
Last edited by heicai on 2007-4-17 at 12:42 PM ]
|
|
2007-4-18 01:41 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第 15 楼』:
使用 LLM 解释/回答一下
其实我觉得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
|

知,不觉多。不知,乃求知 |
|
2007-4-18 01:45 |
|