路径作为参数powershell

路径作为参数powershell,powershell,path,copy-item,Powershell,Path,Copy Item,我对路径有问题。我需要从作为Powershell命令的第一个参数添加的目录中复制所有文件 现在我有: Copy-Item -Path "$args[0]/" -Filter*.* 所以它会复制到我现在所在的位置(没关系,我不想要其他位置),但它不会复制任何东西。请提供帮助。如有疑问,请获取帮助命令 PS C:\> Get-Help Copy-Item -ShowWindow -------------------------- EXAMPLE 3 -------------------

我对路径有问题。我需要从作为Powershell命令的第一个参数添加的目录中复制所有文件

现在我有:

Copy-Item -Path "$args[0]/" -Filter*.*

所以它会复制到我现在所在的位置(没关系,我不想要其他位置),但它不会复制任何东西。请提供帮助。

如有疑问,请获取帮助命令

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

可以肯定的是,
$args
中的
0
元素没有在字符串中展开,从而创建了无效路径。将变量包装在
$()
中,以允许它在双引号字符串中展开。否则,您将尝试复制文件夹
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
您只提供了很少的内容,输出结果表明,在那里使用斜杠可能是多余的。还建议无论如何对参数调用
测试路径
,因为它可能已经为您捕获了这一点

True
True
来自问题评论

如果还需要文件夹内容,则需要查找
-Recurse
参数

来自回答评论

如果您想要的是内容而不是文件夹,您应该能够执行以下操作:

Copy-Item -Path "$($args[0])\*" -Filter *.* -Recurse

请添加更多代码,例如,此函数的调用严格基于您列出的代码。您不能复制内容,因为复制项目需要以某种形式提供源路径和目标路径。您提供其中一个,需要提供另一个。根据您使用的语法,您提供的路径是源。您需要添加-destination参数来指定文件应复制到的位置。但如果我要将其复制到我现在所在的位置,该怎么办?我更改了设置的位置,但仍然需要添加目标路径?根据
-目标是可选的。例如,您将传递什么作为
$args[0]
。请显示代码示例C:\Users\Administrator\Desktop\test.ps1 C:\test和目录C:\test中我有一些文件要复制到当前位置。但在我当前的代码中,它复制文件夹测试(不包含文件),我只需要测试中的文件。因此,现在我使用:C:\Users\Administrator\Desktop\TEST.ps1 C:\TEST和我的代码我有:Copy Item-Path“$($args[0])”-Filter**-Recurse,但它复制目录测试,其中包含文件。我只想要文件(没有目录测试)。怎么做?谢谢你的帮助。@Roberto看看我答案的底部