Windows

檢查是否存在多個網路共享文件

  • May 7, 2018

假設我有一個文件列表 ( 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

引用自:https://serverfault.com/questions/910696