1

本质上,我想做这样的事情(仅使用命令提示符作为视觉示例,很乐意尝试 PowerShell/VBScript/其他编程方法)...

xcopy "\\thisserver\share\something.txt" "\\computer1\c$\users\dude\Desktop\*.*" /Y
xcopy "\\thisserver\share\something.txt" "\\computer2\c$\users\dudeette\Desktop\*.*" /Y
...

事实上,如果我可以更进一步简化代码,我想做这样的事情:

xcopy "\\thisserver\share\something.txt" "\\computer1\c$\*\*\Desktop\*.*" /Y
xcopy "\\thisserver\share\something.txt" "\\computer2\c$\*\*\Desktop\*.*" /Y

我知道这是不正确的编码,但本质上我想将一个文件(确切地说是.vbs 文件)从一个易于访问的网络位置复制到我们所有网络计算机上的所有 Windows 用户(c:\users)桌面位置领域。

任何帮助是极大的赞赏!如果手动是唯一的选择,那么我想就是这样。

4

2 回答 2

2

在域中,使用组策略首选项将文件部署到用户桌面会简单得多。

用于文件部署的 GPP

F3目标文件输入框中使用光标按下以获取可用变量的列表。

于 2015-05-19T14:50:24.497 回答
0

如果你想尝试 PowerShell:

  • 创建一个包含所有目标路径列表的文本文件,类似于:

E:\share\Paths.txt

\\computer1\c$\users\dude\Desktop
\\computer2\c$\users\dudeette\Desktop

.

PowerShell中:

ForEach ( $destination in Get-Content -Path 'E:\share\Paths.txt' )
{
    mkdir $destination -Force
    Copy-Item -LiteralPath 'E:\share\something.txt' -Destination "$destination\something.txt" -Force
}

.

笔记:

- I only tested this on the local drives

- if all destination folders exist: comment out "mkdir $destination -Force"
  (place a "#" before the line: "# mkdir $destination -Force")

- if destination paths contain spaces place this line above "mkdir" line
  $destination = $destination.Replace("`"", "`'")

- I didn't test paths with spaces either

- You can rename destination file to "somethingElse.txt" in the "Copy-Item" line:
  ... -Destination "$destination\somethingElse.txt" -Force

.

所以,版本2:

ForEach ( $destination in Get-Content -Path 'E:\Paths.txt' )
{
    $destination = $destination.Replace("`"", "`'")
    # mkdir $destination -Force
    Copy-Item -LiteralPath 'E:\share\something.txt' -Destination "$destination\somethingElse.txt" -Force
}
于 2015-05-20T06:06:47.827 回答