当前位置: 首页 > 知识库问答 >
问题:

在PowerShell中串联列输出

姚文轩
2023-03-14

我想使用PowerShell生成命令列表,将文件从一个位置移动到另一个位置。(我确信PowerSell确实可以移动,但我想先看看命令列表……是的,我知道-WhatIf)。

文件位于下一层的一系列子文件夹中,需要移动到另一台主机上相应的一系列子文件夹中。子文件夹具有8位标识符。我需要一系列命令,比如

move c:\certs\40139686\22_05_2018_16_23_Tyre-Calligraphy.jpg  \\vcintra2012\images\40139686\Import\22_05_2018_16_23_Tyre-Calligraphy.jpg
move c:\certs\40152609\19_02_2018_11_34_Express.JPG   \\vcintra2012\images\40152609\Import\19_02_2018_11_34_Express.JPG

该文件需要进入相应的8位标识符文件夹的\导入子目录。

下面的PowerShell将生成我需要的数据

dir -Directory |
    Select -ExpandProperty Name |
    dir -File |
    Select-Object -Property Name, @{N='Parent';E={$_.Directory -replace 'C:\\certs\\', ''}}
40139686  22_05_2018_16_23_Tyre-Calligraphy.jpg
40152609  19_02_2018_11_34_Express.JPG
40152609  Express.JPG
40180489  27_11_2018_11_09_Appointment tuesday 5th.jpg

但我一直在研究如何获取这些数据并生成连接字符串,在PHP中是这样的

move c:\certs\$Parent\$Name   \\vcintra2012\images\$Parent\Import\$Name

(好的,反斜杠可能需要转义,但希望它清楚我想要什么)

我只是不知道如何实现这种列输出的串联——我看到的任何引用都是如此。

如何在PowerShell中连接字符串和变量?

不是关于如何做到这一点。

我想我需要将输出管道到一个影响串联的表达式中,也许使用-加入,但是我不知道如何在管道的另一边引用$家长$Name

共有2个答案

锺离德运
2023-03-14

另一种方法:

$source      = 'C:\certs'
$destination = '\\vcintra2012\images'
Get-ChildItem -Path $source -Depth 1 -Recurse -File | ForEach-Object {
    $targetPath = [System.IO.Path]::Combine($destination, $_.Directory.Name , 'Import')
    if (!(Test-Path -Path $targetPath -PathType Container)) {
        New-Item -Path $targetPath -ItemType Directory | Out-Null
    }
    $_ | Move-Item -Destination $targetPath
}
俞子实
2023-03-14

将您的输出导入一个循环,在循环中使用格式运算符(-f)构建命令字符串

... | ForEach-Object {
    'move c:\certs\{0}\{1} \\vcintra2012\images\{0}\Import\{1}' -f $_.Parent, $_.Name
}
 类似资料:
  • 我在寻找一个更简单的解决方案。 我有一个带相应后缀的前缀列表和一个根列表。 我想说出所有可能的“单词”:《代码》A1a、《代码》B1b<代码>A2a<代码>E2e。 我想使用zip或cross之类的东西可以更容易地完成这项工作,但我不知道如何。。。

  • 本文向大家介绍PowerShell 写输出,包括了PowerShell 写输出的使用技巧和注意事项,需要的朋友参考一下 示例 Write-Output产生输出。该输出可以转到管道之后的下一个命令或控制台,以便简单显示。 Cmdlet将对象沿着主管道(也称为“输出流”或“成功管道”)发送。要将错误对象发送到错误管道,请使用Write-Error。 Write-Output cmdlet将指定对象沿管

  • 位置vcenter用户名密码abc 10.1 X xxx def 10.2 Y yyy 一个csv文件,其位置列是一个位置,该位置的IP列表示vCenter IP 我需要生成所有主机详细信息,并添加位置字段作为最终csv中的第一个字段,但无法这样做 实例 假设位置abc有一个带有5台主机的vcenter,位置def有一个带有3台主机的vcenter 输出shd看起来像 位置名称版本abc h1 6

  • 我发现,对于脚本编写成瘾者来说,加入raku的一个巨大卖点就是拥有这样的结构 然而,我似乎不能写这样的东西。据我所知,使用<代码>执行此操作。substStr的方法太难看了,这种链式的s///code>或者甚至也tr///code>基本上会成为sed用户等的门户药物。 我的问题是,我是否遗漏了什么,在拉库是否有可能发生类似的事情。我不是初学者,我想不出来。

  • Microsoft Connect已经退役,但好消息是,对PowerShell(Core)语言中三元运算符的支持似乎正在进行中。

  • 问题内容: 如何在Python中串联两个列表? 例: 预期结果: 问题答案: 你可以使用+运算符来组合它们: 输出: