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