从服务器到多个主机的Powershell Robocopy

时间:2018-08-16 15:33:03

标签: powershell robocopy

我在服务器上有一个文件,想要复制到域中的主机列表。我使用以下脚本填充列出了已连接主机的.txt文件:

@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
set "xComputer=%%~A"
if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
    if "!xNext!"=="1" (
        echo.!xComputer! = %%X.%%Y
        set "xNext=0"
    )
    if "!xComputer:~2!"=="%%~X" set "xNext=1"
)
)
endlocal
pause

然后,在将IP用于其他目的之后,我将IP剥离,留下一个.txt文件,其中逐行列出了主机,如下所示:

\\Host1
\\Host2
\\Host3
...

我尝试了以下方法:

Get-Content 'path\computers.txt' | Foreach-Object start /B {robocopy 'C:\Users\User\Desktop\copyfile' '\\$_\users\user\desktop' }

出现以下错误:

ERROR 53 (0x00000035) Accessing Destination Directory \\$_\Users\user\Desktop\
The network path was not found.

我搞砸了什么?

2 个答案:

答案 0 :(得分:0)

start /b不是Foreach-object的Poper参数。另外,变量不会用单引号引起来。

Get-Content 'path\computers.txt' | Foreach-Object { robocopy C:\Users\User\Desktop\copyfile \\$_\users\user\desktop }

答案 1 :(得分:0)

我不知道为什么,但是它抱怨目标路径上的反斜杠。