CMD 回显日期但将月份显示为字符串

1 cmd.exe

我正在使用 robocopy 命令创建备份系统,我已成功复制文件夹,但日期戳错误。文件夹以日期和时间为前缀。

robocopy 命令是这样的:

robocopy U:\Data\  X:\Private\Backups\FolderName_%date:/=-%-(%time::=-%) /e
Run Code Online (Sandbox Code Playgroud)

文件夹外显示如下:

FolderName_09-11-2013-(20-24-06.60)

我唯一想改变的是日期,我想将月份显示为一个只有前 3 个字符的字符串,比如 Oct.

有人可以指导我。谢谢。

Rik*_*Rik 5

请注意,使用%date%非常依赖 Windows 版本和地区。每种语言/地区都有自己的设置,用户也可以更改此设置。不是真正可靠的获取日期的方法。

获得正确日期的最有效方法是使用wmic OS Get localdatetime. 我不确定你是否可以用同样的方式获得月份名称,所以在这里我只是使用了一些 if 语句来获得月份名称:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set year=%dt:~0,4%
set month=%dt:~4,2%
set day=%dt:~6,2%
if %month%==01 set month=jan
if %month%==02 set month=feb
if %month%==03 set month=mar
if %month%==04 set month=apr
if %month%==05 set month=may
if %month%==06 set month=jun
if %month%==07 set month=jul
if %month%==08 set month=aug
if %month%==09 set month=sep
if %month%==10 set month=oct
if %month%==11 set month=nov
if %month%==12 set month=dec
robocopy U:\Data\  X:\Private\Backups\FolderName_%day%-%month%-%year%-(%time::=-%) /e
Run Code Online (Sandbox Code Playgroud)

我知道这不是“单线”,但我认为这是获得日期的最可靠方式。