1

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

注意:我知道关闭打开的文件不是好的做法,因为它可能会导致数据丢失,但这只是我要替换的 PDF 文件。即使旧文件损坏,它也将被删除。

4

3 回答 3

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
于 2013-09-09T22:28:15.860 回答
0

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

于 2015-02-05T17:05:07.913 回答
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

于 2017-02-18T15:47:11.977 回答