gpt4 book ai didi

windows - Windows CMD 批处理脚本中的文件名时间戳被截断

转载 作者:可可西里 更新时间:2023-11-01 12:15:02 54 4
gpt4 key购买 nike

我有一个输出文件的批处理脚本,我试图确保每次执行该脚本时,没有现有文件被覆盖,所以我试图在上面加上时间戳。

目前我有这个:

set  stamp=%DATE:/=-%_%TIME::=-%

但如果时间是凌晨 1 点到 9 点,它会给出如下内容:

13-06-2012_ instead of a full 13-06-2012_12-39-37.28

我该如何解决这个问题?

我使用的是 Windows 7,命令行窗口中 echo %date% %time% 的输出是(我的“短日期”时钟格式设置为显示 3 个字母月):

03-Sep-12 9:06:21.54

基本上,我想要一个解决问题的解决方案,而不管时钟格式设置成什么。


编辑:由于没有人喜欢阅读标题以外的内容,因此我将明确说明此问题是关于截断问题的。我找到了解决方案。

我使用以下时间戳已经有一段时间了,效果很好。

set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%

通过替换 /:% TIME%%DATE%,然后去除空白。空格确实是我最初问题中的问题。

最佳答案

此代码的前四行将为您提供可靠的 YY DD MM YYYY HH Min Sec 变量,在 XP Pro 和更高版本中,使用 WMIC。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause

输出示例:

datestamp: "20200828"
timestamp: "085513"
fullstamp: "2020-08-28_08-55-13"
Press any key to continue . . .

关于windows - Windows CMD 批处理脚本中的文件名时间戳被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037831/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com