如何通过 Power Shell 脚本检查远程 MTF 服务器中的文件夹是否为空?

如何通过 Power Shell 脚本检查远程 MTF 服务器中的文件夹是否为空?

我想检查 MFT 服务器中的文件夹是否为空。我想使用 .sh 脚本来执行此操作。我有访问加载文件的帐户服务的凭据。不知道如何开始。找到了解决方案,但读取的是文件而不是文件夹

echo "df myfile.txt" | sftp -b - example.com
if [ $? -eq 0 ]
then
    echo "File exists"
else
    echo "File does not exist"
fi

答案1

您可以使用Test-Pathcmdlet。

来自 Microsoft Docs 的测试路径:

Test-Path cmdlet 确定路径的所有元素是否存在。如果所有元素都存在,则返回 $True,如果缺少任何元素,则返回 $False。它还可以判断路径语法是否有效,以及路径是否指向容器或终端或叶元素。如果 Path 是空白的空字符串,则返回 $False。如果 Path 为 $null、$null 数组或空数组,则返回非终止错误。

为了方便起见,您可以使用Invoke-Command在远程计算机上运行该命令。

来自 Microsoft Docs 的 Invoke-Command:

Invoke-Command cmdlet 在本地或远程计算机上运行命令并返回命令的所有输出(包括错误)。使用单个 Invoke-Command 命令,您可以在多台计算机上运行命令。

因此你最终会得到如下结果:

$exists = Invoke-Command -ComputerName [hostname of remote computer] -ScriptBlock {
      Test-Path -Path .\folder\*
}
if($exists -eq $true){
      echo "Folder is not empty"
}
else{echo "Folder is empty"} 

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/invoke-command?view=powershell-7.1 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-path?view=powershell-7.1

相关内容