我对powershell很陌生,想知道是否有人可以指出我正确的方向。
我正在寻找一个脚本来帮助我完成以下任务:
- 我有一个需要推送到远程机器的文件。
- 我有一个远程计算机名称列表,我希望检查该文件是否存在。
- 如果文件存在并且大小和日期相同,则什么也不做。
- 如果文件不存在,或者日期/大小不同,则复制文件。
- 我也可能想写入某种日志/文本文件以指示状态,例如“PC1 - 找不到文件。正在复制”或“PC2 - 找到确切的文件,没有复制”
我对powershell很陌生,想知道是否有人可以指出我正确的方向。
我正在寻找一个脚本来帮助我完成以下任务:
有遵循您的逻辑的 powershell 脚本。目标可以是 UNC 路径。
$source = "C:\Tmp\Test.txt"
$destination = "C:\Tmp\Destination\Test.txt"
$TestPath = Test-Path $destination
IF (!$TestPath)
{Copy-Item $source $destination -Verbose
PC1 - no file found. Copying}
ELSE
{
IF (((Get-ChildItem $source).Length -ne (Get-ChildItem $destination).Length) -or ((Get-ChildItem $source).LastWriteTime -ne (Get-ChildItem $destination).LastWriteTime))
{Copy-Item $source $destination -Force -Verbose}
ELSE
{"PC2 - exact file found, nothing copied"}
}
您是否考虑过使用 Robocopy?如果您是管理员,则可以复制到本地计算机。
\电脑名称\c$\路径\
如果需要,您可以进行差异复制和镜像。