如何在powerShell中解析文件名

时间:2018-01-11 06:34:16

标签: powershell powershell-v2.0 powershell-v3.0 powerbi

这是我的文件名 myregistration_20180105041258_NOTIFICATION_1.zip 和20180105041258这些数字是时间戳。我有这么多格式的文件。这些文件将每天发布到我的共享路径。我已经自动下载了所有文件。但我希望在日期的帮助下下载每日文件。任何人都可以建议我如何使用电源壳???

2 个答案:

答案 0 :(得分:0)

例如: $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]中提取它的值。

答案 1 :(得分:0)

如果我有这个权利,那么你的要求是将实际上是时间戳的数字(在文件名中)改为datetime格式,并使用它来下载文件或进行任何操作你认为。

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

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

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