Batch file PowerShell或批处理文件,用于报告远程计算机上是否存在文件

Batch file PowerShell或批处理文件,用于报告远程计算机上是否存在文件,batch-file,powershell,Batch File,Powershell,我正在寻找在远程计算机上运行的批处理文件或PowerShell脚本,以检查文件是否存在,如果不存在,则将其报告到.txt或.cvs文件。您可以使用测试路径和添加内容cmdlet来实现这一点。下面是一个简单的通用示例。您可以更新它以反映您的特定需求 # Step 1: Build an array of file paths $FileList = @( '\\computer1\c$\path\to\file.txt' , '\\computer2\share\file\na

我正在寻找在远程计算机上运行的批处理文件或PowerShell脚本,以检查文件是否存在,如果不存在,则将其报告到.txt或.cvs文件。

您可以使用
测试路径
添加内容
cmdlet来实现这一点。下面是一个简单的通用示例。您可以更新它以反映您的特定需求

# Step 1: Build an array of file paths
$FileList = @(
      '\\computer1\c$\path\to\file.txt'
    , '\\computer2\share\file\name.ext'
    , '\\computer3\path\to\foo\bar.txt'
    )

# Step 2: Test each path and log to a text file
foreach ($File in $FileList) {
    if (!(Test-Path -Path $File)) {
        Add-Content -Path 'c:\path\to\log file.log' -Value "File does not exist: $File";
    }
}
要导入计算机列表,请使用
Get Content
cmdlet:

# Step 1: Get array of computer names and define path
$ComputerList = Get-Content -Path c:\list\of\computers.txt;
$FilePath = '\\{0}\share\path\to\file.txt';

# Step 2: Test each path and log to a text file
foreach ($Computer in $ComputerList) {
    if (!(Test-Path -Path ($FilePath -f $Computer))) {
        Add-Content -Path 'c:\path\to\log file.log' -Value "File does not exist: $File";
    }
}

有许多方法可以访问文件。我将假设,出于安全原因,您不想授予对该文件的访问权限,只想检测该文件是否存在。在本例中,我将使用一个在远程机器上运行的简单HTTP服务器,并使用curl或wget对其进行测试。Windows也有相应的功能


如果您确实想访问文件内容,那么我会将文件夹公开并使用测试路径:

我在少数远程计算机上安装了一个软件,但用户抱怨它无法工作。因此,我想检查文件/文件夹是否存在,如果不存在,我必须手动运行它。谢谢。我有电脑的清单,我不必一个一个地去。我可以从txt文件导入它吗?我添加了一个示例,说明如何导入计算机列表并在每个计算机上测试静态文件路径。