检查多个网络共享文件是否存在

检查多个网络共享文件是否存在

假设我有一个文件列表(files.txt),如下所示:

\\myshare\file1
\\myshare\file2
\\myshare\file3

如何通过批处理脚本(Windows)检查这些文件是否存在并输出?我尝试过if exists \\path\file,但它总是告诉我该路径在语法上不能使用。

答案1

这是一个完整的脚本。可以修改它以与其他东西一起使用

@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
 )
)

答案2

根据路径的格式,我认为您指的是 SMB:在这种情况下,您可以挂载共享(例如使用mount.cifs)并检查它是否是本地文件,或者您可以使用它smbclient来检查文件是否远程存在:

smbclient //host/share -U username -c "ls filetocheck"

结果将在 中$?,如果文件存在则为零,1否则。

在 Windows 上,您可以使用if exist \\server\share goto label(实际上,您可以发出任何 CMD 命令来代替goto

相关内容