PowerShell Copy-Item 不创建子文件夹

问题描述

我希望 copy-Item 复制到目标文件并在此过程中创建任何子文件夹,但我似乎无法使其正常工作。

copy-Item $fullsrc $fulldst -Recurse -Force -Verbose

$fullsrc$fulldst 是带有文件名的完整路径,因为目标文件名与源文件名不同。有没有办法让 copy-Item 创建子文件夹,然后复制文件

VERBOSE: Performing the operation "copy File" on target "Item: D:\mypath\logs\001.123.log
Destination: D:\newpath\newlogs\123.234.log".
copy-Item : Could not find a part of the path 'D:\newpath\newlogs\123.234.log'.

解决方法

Copy-item 没有创建文件夹的功能,需要事先创建

 Copy-Item $fullsrc $(new-item -ItemType Directory -Path $fulldst) -Recurse -Force -Verbose -ErrorAction SilentlyContinue
,

您必须自己创建目标文件的父目录。

# Split-Path with single parameter outputs the parent directory
$null = New-Item (Split-Path $fulldst) -ItemType Directory

Copy-Item $fullsrc $fulldst -Force -Verbose

请注意,当您指定完整的源文件和目标文件路径时,-Recurse 开关没有用,因此我已将其删除。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...