我需要檢查並返回文件系統中存在但未列在給定文本文件中的文件。例如,我的文本文件(sample.txt的)將包含類似的路徑:如何使用powershell找到文本文件路徑不存在的文件
\\SharedDrive\Data\DevS\Common\app_name\subfolder1\Archive\Archive1.vbproj
\\SharedDrive\Data\DevS\NotCommon\app_name\subfolder1\user\WebApp.vbproj
\\SharedDrive\Data\DevS\UnCommon\app_name\subfolder1\Manager\Managerial.vbproj
碰巧有該驅動器上存在的VB工程文件,但不在名單之中,這是我想和一起返回他們的完整路徑。例如:
\\SharedDrive\Data\DevS\Common\app_name\subfolder2\Windows\SharedArchive.vbproj
\\SharedDrive\Data\DevS\NotCommon\app_name2\subfolder1\user2\WebApp2.vbproj
我嘗試這樣做:
$log = "e:\pshell\notExists.log"
Get-Content "e:\pshell\Sample.txt" | Where-Object {
#Keep only paths that does not exists
!(Test-Path $_)
} | Set-Content $log
但這確實周圍的其他方法。
嗯......不,你的代碼確實你說你想要它做什麼。不過,您可能希望將'Test-Path $ _'更改爲'Test-Path -LiteralPath $ _',只是爲了安全起見。 – 2013-04-09 09:10:56
@AnsgarWiechers:這段代碼實際上返回了列表中的一部分但不存在於驅動器上的文件。但我想要另一種方式 - 列表中不存在但存在於驅動器上的文件。 – 2013-04-09 11:48:28