替换数字 - powershell

时间:2018-05-02 14:06:29

标签: regex powershell powershell-v2.0

尝试创建一个脚本,将每个文件名组织成:Year,Month&日变量。

要使用我当前的版本在PowerShell中执行此操作,我需要使用-replace,但它只会从右到左删除数字。

如何替换前4位数字,在这种情况下会是这样的:20181015

$Month = $FileNameArray -replace "^2018"
$Month = $FileNameArray -replace "..$"

输出:

201801...201802...201803...201804...201805...201806...201807...201808...201809...2018010...2018011...2018012...

...表示重复相同数字的实例。

2 个答案:

答案 0 :(得分:0)


你失去了一个参数。
对于运算符-replace有2个参数,第一个是源,第二个是目标,用逗号分隔。

"20181015" -replace "^2018","9999"

这将输出99991015,源支持正则表达式。

答案 1 :(得分:0)

我想我可能会感到困惑。我认为你的目标是根据日期创建路径。鉴于日期20180101,您可以创建路径:

$date = [datetime]::parseexact("20180101", "yyyyMMdd", [System.Globalization.CultureInfo]::InvariantCulture)
$path = '{0}\{1:D2}\{2:D2}' -f $date.Year, $date.Month, $date.Day

无需进行任何替换。