【发布时间】:2015-03-30 13:37:40
【问题描述】:
我正在寻找一种 powershell 解决方案,以将给定的 filename.txt 从具有不同域登录凭据的多个服务器 unc 路径复制到给定文件夹 - 以及根据名称列表(或大小写/ if-stmt) 并将每个服务器路径的子文件夹名称导出到 csv,其中服务器和文件名作为列。
以下是我用于一个服务器的代码 - 我只是添加了一些服务器和文件名。
你能帮我完成这项工作吗?
我使用 Powershell 版本 4。
例子:
$serverNames = @(
"\\serverA\folderA";
"\\serverB\folderA";
"\\serverC\folderA";
)
$fileNames = @(
"fileServerA";
"fileServerB";
"fileServerC";
)
foreach ($element in $serverNames) {
Try {
If (Test-Path Q:){
Remove-PSDrive -Name "Q" -Force
# two server paths are in a different domain,
# so I need a case or if-stmt to pass login credentials
New-PSDrive -Name "Q" -PSProvider FileSystem -Root $element -Credential
}
else{
New-PSDrive -Name "Q" -PSProvider FileSystem -Root $element -Credential
}
#copy filename.txt (always the same name)
robocopy $element\SubFolder\ C:\temp\ filename.txt /R:2 /W:3 /XO
#rename filename.txt according to fileName
Move-Item C:\temp\filename.txt C:\temp\$name.xml -Force
#scan dir and write foldernames (only "first" child folders) to .txt file with the according serverName AND fileName as columns
dir -Directory \\serverA\folderA | Select-Object -ExpandProperty Name
}
}
【问题讨论】:
标签: powershell foreach