【发布时间】:2017-10-10 11:39:14
【问题描述】:
所以我在一个文件夹中有数百个文件:
文件总是First_Last (MMM yyyy):
C:\Test\Bob_Johnson (May 2017).pdf
C:\Test\James_Smith (Apr 2017).pdf
它们会根据文件名移动到各个文件夹(我想我知道如何移动文件)。这些文件夹被命名为Last, First 00-0000,其中零是案例编号。
以下脚本将从文件名中删除(MMM yyyy):
Get-ChildItem -Path C:\Test | ?{ ($_.PsIsContainer)} | %{
$File = ($_.name.substring(0,$_.basename.length-11))
Write-Host $File
}
输出:
Bob_Johnson
James_Smith
太好了。但它必须是“Last, First”。
Get-ChildItem -Path C:\Test | ?{!($_.PsIsContainer)} | %{
$File = ($_.BaseName -split '_')[1] + ", " + ($_.BaseName -split '_')[0]
Write-Host $File
}
输出:
Johnson (May 2017), Bob
Smith (Apr 2017), James
所以这是我的问题:我如何组合子字符串和拆分,以便修剪最后 11 个字符和用“,”重新排列名字和姓氏“介于两者之间?
所需的输出:
Johnson, Bob
Smith, James
【问题讨论】:
标签: powershell variables split substring