我正在尝试使用PowerShell将单个文件从阵列复制到目标文件夹。但是,我需要复制每个文件及其各自的源文件夹。不是该文件夹的全部内容,而只是文件夹和文件。例如:
Copy-Item -Path \\SERVER\FOLDER1\FOLDER2\FILE.TXT -Destination E:\TEMP
现在显然,这将带来该文件,但就是这样。我需要把它带到那个文件和至少它所在的文件夹,所以我最好还是这样:E:\ TEMP \ FOLDER2 \ FILE.TXT。或者,虽然不完美,但我也可以处理,E:\ TEMP \ FOLDER1 \ FOLDER2 \ FILE.TXT。但我没有做的就是将文件所在的文件夹/容器,只是文件本身及其中的内容。
答案 0 :(得分:1)
您最好使用robocopy
。
robocopy \\SERVER\FOLDER1 E:\TEMP FILE.TXT /s
如果您将源路径作为字符串(或字符串列表)输入,您可以像这样处理它:
'\\SERVER\FOLDER1\FOLDER2\FILE.TXT', ... | Get-Item | ForEach-Object {
robocopy $_.Directory.Parent.FullName E:\TEMP $_.Name /s
}
答案 1 :(得分:1)
如果目录结构已经存在,您可以尝试:
Get-Item '\SERVER\FOLDER1\FOLDER2\FILE.TXT' |
Copy-Item -Destination { Join-Path 'E:\TEMP' $_.Directory.Name }
如果没有,则必须将新目录路径保存在变量中并首先创建它。