我已经在批处理脚本中创建了一个时间戳变量,如此...
set TIMESTAMP=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%-%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
虽然HH只是我得到的一个数字,但是有一个问题......
YYYY-MM-DD- 2-MM-SS
而不是
YYYY-MM-DD-02-MM-SS
如何在没有空格的情况下始终生成时间戳?
答案 0 :(得分:2)
不要使用区域设置/用户设置相关的日期时间变量,而是wmic:
> SO_45465890.cmd
TIMESTAMP=2017-08-02-18-42-07
示例输出:
@Echo off
For /f %%A in ('powershell -NoP -C "get-date -f \"yyyy-MM-dd-HH-mm-ss\""') Do Set TimeStamp=%%A
Set TimeStamp
或者使用PowerShell并让它进行格式化:
import io
import sys
from enum import Enum
class Tee(io.StringIO):
class Source(Enum):
STDOUT = 1
STDERR = 2
def __init__(self, clone=Source.STDOUT, *args, **kwargs):
super().__init__(*args, **kwargs)
self._clone = clone
if clone == Tee.Source.STDOUT:
self._out = sys.stdout
elif clone == Tee.Source.STDERR:
self._out = sys.stderr
else:
raise ValueError("Clone has to be STDOUT or STDERR.")
def write(self, *args, **kwargs):
self._out.write(*args, **kwargs)
return super().write(*args, **kwargs)
def __enter__(self):
if self._clone == Tee.Source.STDOUT:
sys.stdout = self
else:
sys.stderr = self
self.seek(io.SEEK_END)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
if self._clone == Tee.Source.STDOUT:
sys.stdout = self._out
else:
sys.stderr = self._out
self.seek(0)
return False
答案 1 :(得分:0)
set "timestamp=%timestamp: =0%"
用零替换空格。
请参阅文档提示中的set /?
。