Powershell将文本连接到变量
我的源文件都位于一个文件夹中,其路径包含在名为$template的变量中。 我需要指定每个文件到达不同目的地时的确切文件名 我的目标只是将文件名连接到变量 例如:Powershell将文本连接到变量,powershell,Powershell,我的源文件都位于一个文件夹中,其路径包含在名为$template的变量中。 我需要指定每个文件到达不同目的地时的确切文件名 我的目标只是将文件名连接到变量 例如: $template = "D:\source\templatefiles\" 文件名1为:graphic-183.jpg 我试过: Join-Path $template graphic-183.jpg 在cli上发布此命令似乎可以实现我的目的 但是现在,除了为每个文件创建一个新变量之外,我如何引用这个连接的文件路径呢?这并不像在
$template = "D:\source\templatefiles\"
文件名1为:graphic-183.jpg
我试过:
Join-Path $template graphic-183.jpg
在cli上发布此命令似乎可以实现我的目的
但是现在,除了为每个文件创建一个新变量之外,我如何引用这个连接的文件路径呢?这并不像在列表中查找下一个文件那样简单,而是取决于决定文件位置的文件名
我在玩弄别的案子,埃尔塞夫,但肯定没那么难
底线是,我只想为每个文件名添加文件夹路径前缀,并对目标进行硬编码,因为每次运行脚本时,目标始终相同
编辑
我只是编辑了这个,因为我忘了提到我是如何使用它的
在我的脚本中,我希望有这样的行:
复制项目-路径$template filename.ext-目标$dest文件夹
正是上面突出显示的部分,我正试图将$template加入到文件名中
谢谢你的建议
-=Bruce D.Meyer您可以这样构建路径:
$template = "D:\source\templatefiles\"
Copy-Item -Path "${template}filename.ext" ...
$locations = @{
"foo" = "C:\some",
"bar" = "C:\other",
...
}
Get-ChildItem $template | % { Copy-Item $_ $location[$_.Name] }
然而,我认为大卫的建议可能是解决你问题的更好办法。您可以使用哈希表将文件名映射到目标文件夹,并执行以下操作:
$template = "D:\source\templatefiles\"
Copy-Item -Path "${template}filename.ext" ...
$locations = @{
"foo" = "C:\some",
"bar" = "C:\other",
...
}
Get-ChildItem $template | % { Copy-Item $_ $location[$_.Name] }
您可以这样构建路径:
$template = "D:\source\templatefiles\"
Copy-Item -Path "${template}filename.ext" ...
$locations = @{
"foo" = "C:\some",
"bar" = "C:\other",
...
}
Get-ChildItem $template | % { Copy-Item $_ $location[$_.Name] }
然而,我认为大卫的建议可能是解决你问题的更好办法。您可以使用哈希表将文件名映射到目标文件夹,并执行以下操作:
$template = "D:\source\templatefiles\"
Copy-Item -Path "${template}filename.ext" ...
$locations = @{
"foo" = "C:\some",
"bar" = "C:\other",
...
}
Get-ChildItem $template | % { Copy-Item $_ $location[$_.Name] }
也许这就是你想要的 可以使用括号就地调用cmdlet,如下所示:
Copy-Item -Path (Join-Path $template filename.ext) -Destination $destfolder
这会导致PowerShell从参数模式转换为表达式模式-即,它将Join-Path cmdlet的输出作为表达式返回
是的,David和Ansgar的建议也很有帮助-尝试以下方法仅获取完整路径:
(get-childitem $template) | select fullname
也许这就是你想要的 可以使用括号就地调用cmdlet,如下所示:
Copy-Item -Path (Join-Path $template filename.ext) -Destination $destfolder
这会导致PowerShell从参数模式转换为表达式模式-即,它将Join-Path cmdlet的输出作为表达式返回
是的,David和Ansgar的建议也很有帮助-尝试以下方法仅获取完整路径:
(get-childitem $template) | select fullname
你不能直接调用$myFiles=GetChildItem$template吗?然后,$template中的所有文件都将存储在数组$myFiles中。还是我遗漏了什么?没有。你没有错过任何东西。都是我。没有大量的连续经验。我似乎只有在我需要的时候才有写剧本的乐趣,这并不经常发生。我试着用谷歌搜索这个,但就是找不到我真正需要的东西。在这里提供的三个答案之间,我现在很好。现在,如果我能弄明白投票是怎么回事。另外两个被列为答案,你的回答David,看起来像是评论什么的。谢谢你们三位。你们不能直接调用$myFiles=Get ChildItem$template吗?然后,$template中的所有文件都将存储在数组$myFiles中。还是我遗漏了什么?没有。你没有错过任何东西。都是我。没有大量的连续经验。我似乎只有在我需要的时候才有写剧本的乐趣,这并不经常发生。我试着用谷歌搜索这个,但就是找不到我真正需要的东西。在这里提供的三个答案之间,我现在很好。现在,如果我能弄明白投票是怎么回事。另外两个被列为答案,你的回答David,看起来像是评论什么的。谢谢你们三位。这些帖子对我的工作都很有用。谢谢你花时间指导我。这些帖子对我的工作都很有用。谢谢你花时间指导我。谢谢你的帮助。这在我的项目中仍然很有用。谢谢你的帮助。这在我的项目中仍然非常有用。