Scripting
如何獲取打開文件的完整路徑
我有在 Windows 伺服器上執行的腳本來對某些文件執行操作。該腳本經常失敗,因為各種使用者(甚至我自己)在伺服器上打開了他們忘記關閉的文件共享,因此文件夾被鎖定。
我添加了程式碼來檢查打開的文件
net file
,如果它們匹配某些模式則關閉它們。存在的限制是net file
總結了打開文件的路徑,例如ID Path User name # Locks ------------------------------------------------------------------------------- 2 C:\Program Files\...\cocoon-2.1.11\ huttarl 0
當打開文件的完整路徑是
C:\Program Files\Apache Software Foundation\cocoon-2.1.11
因此,當我的腳本檢查文件路徑是否與特定模式匹配時,例如“Apache”,它有時會錯過列表
...
中間的文件net file
。所以我的問題是,如何在腳本中獲取打開文件的完整路徑?
目前,我正在使用 cygwin/bash。因此,如果我必須切換到 WSH,則需要進行一些移植。但如果這是唯一的選擇,我會去的。
如果重要,系統資訊面板會顯示我的 Windows 版本是 Windows Server Standard,(c) 2007,SP2。
我發現以下有用:
openfiles /query /v | findstr "string what You want"
你應該使用PsFile
關於它
“net file”命令向您顯示其他電腦在您執行該命令的系統上打開的文件列表,但是它會截斷長路徑名並且不允許您查看遠端系統的資訊。PsFile 是一個命令行實用程序,它顯示系統上遠端打開的文件列表,它還允許您按名稱或文件標識符關閉打開的文件。