【发布时间】:2022-01-04 15:29:40
【问题描述】:
我想在批处理脚本中也能在 PowerShell CLI 中实现我可以做的事情:
PS C:\Users\andreas.luckert> $timestamp = Get-Date -UFormat "%d-%m-%Y--%R-UTC%Z" | ForEach-Object { $_ -replace ":", "." }
PS C:\Users\andreas.luckert> echo $timestamp
26-11-2021--15.55-UTC+01
现在,在我的批处理脚本中,我尝试了类似于以下的方法
SET _timestamp=('Get-Date -UFormat "%d-%m-%Y--%R-UTC%Z" | ForEach-Object { $_ -replace ":", "." }')
但是,它不起作用。
像this 这样的解决方案在我看来有点老套,general instructions for batch variables 在这种情况下没有帮助,与我在一开始。 此外,它们都不包括时区,这对我来说很重要。
【问题讨论】:
-
捕获命令输出以分配给变量的语法可能很难看,但您的答案肯定在您链接到的最后一个问题中,您会发现更多具有相同语法的问题和答案.
-
下面@mklement0 的回答已经证明,有一种方法可以利用 PowerShell 命令,它允许使用完全相同的语法。
-
mklement0 在他的回答中使用的语法与您在原始问题中链接到的answer 中使用的语法相同。您基本上只有两个选项来捕获批处理文件中命令的输出。您要么使用
FOR /F命令,要么写入文件并使用SET /P或另一个FOR /F命令将其读回。 -
虽然其他问题中的一些替代答案确实可能有效,但我是 PowerShell 命令的新手,不知道如何根据我的特定需求调整所述答案。因此,我很感激 @mklement0 在他对我的问题的回答中构建了它。
标签: powershell batch-file timestamp batch-processing timestamp-with-timezone