我正在尝试实现以下目标,从txt文件获取计算机名称,搜索特定的文件扩展名,将文件与文件夹结构一起复制,并根据计算机名称在目标位置创建文件夹并将其粘贴在此处,请参阅我的powershell命令下面,当我尝试使用单台计算机时,它可以正常工作,但添加多台计算机时,我却报错。
请告诉我需要进行哪些修改?预先感谢
$computername = Get-Content -Path "C:\Test\computers.txt"
$src = "\\$ComputerName\c$\test"
Get-ChildItem $src -Recurse *.opt | foreach {
$split = $_.Fullname -split '\\'
$DestFile = $split[1..($split.Length - 1)] -join '\'
$DestFile = "C:\Test1\$DestFile"
$null = New-Item -Path $DestFile -Type File -Force
Copy-Item -Path $_.FullName -Destination $DestFile -Force
}
答案 0 :(得分:0)
根据我的评论,迭代从computers.txt中读取的行:
## Q:\Test\2018\07\28\SO_51572359.ps1
$computers = Get-Content -Path "C:\Test\computers.txt"
ForEach($ComputerName in $computers){
$src = "\\$ComputerName\c$\test"
Get-ChildItem $src -Recurse *.opt | ForEach-Object {
$split = $_.Fullname -split '\\'
$DestFile = $split[1..($split.Length - 1)] -join '\'
$DestFile = "C:\Test1\$DestFile"
$null = New-Item -Path $DestFile -Type File -Force
Copy-Item -Path $_.FullName -Destination $DestFile -Force
}
}
运行脚本后的样本树:
> tree c:\Test1 /F
Folder PATH listing for volume ThisPC
Volume serial number is 0000xxxx xxxx:xxxx
C:\TEST1
└───RemotePC
└───c$
└───test
Test.opt