用于关闭打开文件的命令

时间:2013-09-08 19:09:46

标签: batch-file cmd

我正在尝试创建一个.CMD文件,以便轻松复制和粘贴修改后的文件(即test.pdf),用新文件覆盖旧文件。问题是,如果旧文件当前由网络上的用户打开,那么我无法粘贴或删除它。我尝试使用DEL /F "test.pdf"命令,但它仍然没有强制删除。我知道有net file <ID> /close命令,但<ID>是动态的,两次永远不会相同。知道路径和文件名,有没有办法确定脚本中文件的<ID>?或者是否有另一种方法可以关闭CMD文件中的打开文件?另一个问题是多个用户可以同时打开文件......

注意:我知道关闭一个打开的文件并不是一个好习惯,因为它可能会导致数据丢失,但这只是一个我正在替换的PDF文件。即使旧文件被破坏,它仍然会被删除。

3 个答案:

答案 0 :(得分:0)

根据此页面http://technet.microsoft.com/en-us/library/bb490702.aspx上的网络文件输出信息,这样的一些代码将获取文件的ID。

@echo off
for /f %%a in (' net file ^|find /i "myfilename.pdf" ') do net file %%a /close

答案 1 :(得分:0)

我使用了由Empty Loop制作的名为Unlocker v1.9.2的程序。 Unlcoker 1.9.2有一个免费软件版本,它有一个命令行实用程序,您可以使用参数(文件的路径)来解锁.exe文件。工作得很完美。

答案 2 :(得分:0)

您还可以使用sysinternals套件中的psfile.exe来简化此操作。只需修改test.pdf的完整路径,使其指向test.pdf的父目录。

psfile.exe \\(remote computer) (full path to parent directory of test.pdf) -c

例如: psfile.exe \\computer1 C:\pdfs\test -c