2

我对powershell很陌生,想知道是否有人可以指出我正确的方向。

我正在寻找一个脚本来帮助我完成以下任务:

  1. 我有一个需要推送到远程机器的文件。
  2. 我有一个远程计算机名称列表,我希望检查该文件是否存在。
  3. 如果文件存在并且大小和日期相同,则什么也不做。
  4. 如果文件不存在,或者日期/大小不同,则复制文件。
  5. 我也可能想写入某种日志/文本文件以指示状态,例如“PC1 - 找不到文件。正在复制”或“PC2 - 找到确切的文件,没有复制”
4

2 回答 2

1

有遵循您的逻辑的 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"}
}
于 2013-10-02T18:05:01.603 回答
0

您是否考虑过使用 Robocopy?如果您是管理员,则可以复制到本地计算机。

\电脑名称\c$\路径\

如果需要,您可以进行差异复制和镜像。

于 2013-10-02T15:47:12.237 回答