楼 主
[求助]如何删除一个正在被使用中的文档所在的目录
发表于 2008-01-25 18:56 · 中国 上海 浦东新区 电信
初级用户
★
积分 22 发帖 9 注册 2007-02-07 00:39 19年会员 UID 78826 性别 男
状态 离线
今天在论坛里发现了别人的相关代码,比如可以:
@echo off
del /q /s /a /f d:\123\.
cd d:\123
rd /s /q .
exit
但是这个有个问题的存在,就是当所删除的子目录内有一个文档正在被另外一个人打开的时候,会无法删除该目录,虽然文件已经被删除了。比如说:在D\123\456目录下有一个文档789.txt被一个通过网络访问的人打开查看中,那这个456目录就无法删除,不知道怎么解决有被别人正在使用中的文档所在目录的删除办法?谢谢。
第 2 楼
发表于 2008-01-25 19:08 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
先说明什么系统,如果XP的话
1: 目录内有一个文档正在被另外一个人打开的时候......能删除该目录
2: 被一个通过网络访问的人打开查看中......未知能不能删除该目录
第 3 楼
发表于 2008-01-25 19:11 · 中国 上海 浦东新区 电信
初级用户
★
积分 22 发帖 9 注册 2007-02-07 00:39 19年会员 UID 78826 性别 男
状态 离线
我的系统是W2k3 standard server sp2 以及Windows XP professional sp2上都不可以
就是本机打开需要删除目录下的文档,该目录也删除不了。
第 4 楼
发表于 2008-01-25 19:57 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
需要wmic 见下面演示代码
@echo off
md D:\test
echo.>D:\test\test.txt
start D:\test\test.txt
rem 以上创建D:\test\test.txt并打开D:\test\test.txt
for /f "tokens=2,3 delims=," %%i in ('wmic process get ProcessId^,CommandLine /format:csv^|find /v "find"^|find /i "D:\test\test.txt"') do set PID=%%j
taskkill.exe /PID %PID%
rd /s /q D:\test\
pause
第 5 楼
发表于 2008-01-25 20:04 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
taskkill.exe不能for do语句后面,因为taskkill.exe调用wmi杀死进程的
多个进程的话启用下变量延迟,若实际应用有问题再跟贴,我有事闪了......
第 6 楼
发表于 2008-01-26 00:02 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
演示2个cmd进程当前目录D:\test(此时是删除不掉的)
@echo off
md D:\test 2>nul
start /min cmd /k cd D:\test
start /min cmd /k cd D:\test
for /f "tokens=2,3 delims=," %%i in ('wmic process get ProcessId^,CommandLine /format:csv^|find /v "find"^|find /i "D:\test"') do call set pid=%%pid%% /pid %%j
taskkill.exe /f %PID%
rd /s /q D:\test\
pause
第 7 楼
发表于 2008-02-04 16:54 · 中国 上海 浦东新区 电信
初级用户
★
积分 22 发帖 9 注册 2007-02-07 00:39 19年会员 UID 78826 性别 男
状态 离线
我把情况再具体化下:
现在我有一个文件共享的服务器,有一个共享文件夹比如说“公共交流区”,权限是everyone Full control,在局域网里的所有PC都能通过445端口连接到这个共享文件夹进行文件的操作,现在就是想在每天晚上的时候将这个文件夹里的所有内容清空,但是就是有可能会遇到需要删除的时候,该文件仍然在被某人使用中,这些文件可能是TXT、DOC、EXE、EXEL、PDF等等,现在就是想能做出个P来执行这个删除的工作。.
[ Last edited by ladchee on 2008-2-4 at 05:33 PM ]
第 8 楼
发表于 2008-02-19 17:44 · 中国 上海 浦东新区 电信
初级用户
★
积分 22 发帖 9 注册 2007-02-07 00:39 19年会员 UID 78826 性别 男
状态 离线
第 9 楼
发表于 2008-02-19 19:12 · 中国 北京 联通
银牌会员
★★★
积分 1,287 发帖 634 注册 2007-05-02 15:06 19年会员 UID 87277 性别 男 来自 cmd.exe
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正