Windows
檢查是否存在多個網路共享文件
假設我有一個文件列表 (
files.txt
),如下所示:\\myshare\file1 \\myshare\file2 \\myshare\file3
如何通過批處理腳本(Windows)檢查這些文件是否存在並輸出?我試過了
if exists \\path\file
,但它總是告訴我在那個時候不能在語法上使用路徑。
這是一個完整的腳本。可以修改它以與其他東西一起使用
@echo off for /f "tokens=*" %%s in (list.txt) do ( if exist %%s ( echo %%s found echo %%s >> sharesfound.txt ) else ( echo %%s NOT found echo %%s >> sharesmissing.txt ) )
根據您的路徑格式,我認為您指的是 SMB:在這種情況下,您可以掛載共享(例如 with
mount.cifs
)並檢查它是否是本地文件,或者您可以使用它smbclient
來檢查文件遠端存在:smbclient //host/share -U username -c "ls filetocheck"
結果將在 中
$?
,如果文件存在則為零,1
否則為零。在 Windows 上,您可以使用
if exist \\server\share goto label
(實際上,您可以發出任何 CMD 命令而不是goto
)