使用其父文件夹/完整路径复制一个单独的文件

时间:2016-06-22 15:39:32

标签: powershell

我正在尝试使用PowerShell将单个文件从阵列复制到目标文件夹。但是,我需要复制每个文件及其各自的源文件夹。不是该文件夹的全部内容,而只是文件夹和文件。例如:

Copy-Item -Path \\SERVER\FOLDER1\FOLDER2\FILE.TXT -Destination E:\TEMP

现在显然,这将带来该文件,但就是这样。我需要把它带到那个文件和至少它所在的文件夹,所以我最好还是这样:E:\ TEMP \ FOLDER2 \ FILE.TXT。或者,虽然不完美,但我也可以处理,E:\ TEMP \ FOLDER1 \ FOLDER2 \ FILE.TXT。但我没有做的就是将文件所在的文件夹/容器,只是文件本身及其中的内容。

2 个答案:

答案 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 }

如果没有,则必须将新目录路径保存在变量中并首先创建它。