如何在powerShell中解析文件名

How to parse file name in powerShell

这是我的文件的名称 myregistration_20180105041258_NOTIFICATION_1.zip 和 20180105041258 数字是时间戳。我有很多这种格式的文件。这些文件每天都会发布到我的分享路径。我已经自动下载所有文件。但我想在日期的帮助下下载每日文件。谁能建议我如何使用 power shell 做到这一点???

例如: $original = "myregistration_20180105041258_NOTIFICATION_1.zip"; $trimmed = $original | Select-String -Pattern "myregistration" -InputObject {$_.TrimEnd("whatever you want to trim")}

P.S。如果您只需要获取时间戳,也有可能说: $original -match "\d" 并从 $Matches[0].

中提取它的值

如果我做对了,那么您的要求是将实际上是时间戳的数字(在文件名中)更改为 datetime 格式,然后使用它来下载文件或执行想怎么操作就怎么操作。

为此,我会使用 -split 参数从文件名中获取数字,然后使用 PoSh ParseExact 函数将数字转换为 datetime 格式.代码看起来像这样。

$string = " myregistration_20180105041258_NOTIFICATION_1.zip"
$array = @($string.Split('_'))
$datetime = [datetime]::parseexact($array[1], 'yyyyMMddhhmmss', $null)

现在您的 $datetime 变量将包含相应文件的日期,您可以使用它进行进一步操作。如果你有一堆文件,你可以使用 foreach 循环遍历每个文件。