我的路径有问题。我需要从我在 Powershell 命令中添加为第一个参数的目录中复制所有文件。
我现在有:
Copy-Item -Path "$args[0]/" -Filter*.*
所以它会复制到我现在所在的位置(没关系,我不想要其他位置),但它不会复制任何东西。请帮忙。
我的路径有问题。我需要从我在 Powershell 命令中添加为第一个参数的目录中复制所有文件。
我现在有:
Copy-Item -Path "$args[0]/" -Filter*.*
所以它会复制到我现在所在的位置(没关系,我不想要其他位置),但它不会复制任何东西。请帮忙。
很确定问题是 in 中的0
元素$args
没有在创建无效路径的字符串中扩展。将变量包装在其中$()
以允许它在双引号字符串内展开。否则,您最终会尝试复制C:\TEST[0]/
显然不正确的文件夹。
Copy-Item -Path "$($args[0])/" -Filter *.* -Recurse
由于 Windows 路径使用反斜杠,因此尚不确定为什么在那里有正斜杠。
function Copy-Something(){
test-Path "$($args[0])/"
test-path "$($args[0])"
}
Copy-Something C:\temp
您提供的输出很少,表明在此处使用斜线可能是多余的。还建议Test-Path
无论如何都要调用论点,因为它可能已经为你抓住了这一点。
True
True
来自问题评论
-Recurse
如果您还需要文件夹内容,您正在寻找参数。
来自答案评论
如果您想要内容而不是文件夹,您应该能够执行以下操作:
Copy-Item -Path "$($args[0])\*" -Filter *.* -Recurse
如有疑问,请使用 Get-Help 命令。
PS C:\> Get-Help Copy-Item -ShowWindow
-------------------------- EXAMPLE 3 --------------------------
This command copies the contents of the C:\Logfiles directory
to the C:\Drawings\Logs directory. It creates the \Logs
subdirectory if it does not already exist.
Windows PowerShell
PS C:\> Copy-Item C:\Logfiles -Destination C:\Drawings\Logs -Recurse