Cmd 当生成.bat文件并运行时,WINDOWS 7不起作用

Cmd 当生成.bat文件并运行时,WINDOWS 7不起作用,cmd,Cmd,当我们创建bat文件时,此命令不起作用引用环境变量日期的格式日期取决于地区设置,即哪个国家/地区以及从哪个国家/地区派生的当前帐户配置了哪个日期格式。因此,将哪个字符串分配给环境变量today,以及该字符串是否对目录或文件名有效取决于特定于帐户的日期格式 在我的计算机上,德语设置为我的帐户的国家/地区输出的echo%DATE%为2017年11月13日。因此,日期格式为dd.MM.yyyy,以点为分隔符,没有工作日,即使是小于10的日期或月份,日期和月份也始终为两位数 命令行 D:\> se

当我们创建bat文件时,此命令不起作用

引用环境变量日期的格式日期取决于地区设置,即哪个国家/地区以及从哪个国家/地区派生的当前帐户配置了哪个日期格式。因此,将哪个字符串分配给环境变量
today
,以及该字符串是否对目录或文件名有效取决于特定于帐户的日期格式

在我的计算机上,德语设置为我的帐户的国家/地区输出的
echo%DATE%
2017年11月13日
。因此,日期格式为
dd.MM.yyyy
,以点为分隔符,没有工作日,即使是小于10的日期或月份,日期和月份也始终为两位数

命令行

D:\> set "today=%date:~10,4%-%date:~7,2%-%date:~4,2%"

D:\> mkdir SVN_BACKUP_DUMP_TEST\%today%

D:\> CD SVN_BACKUP_DUMP_TEST\%today%
使用我的帐户和我的区域设置在我的计算机上生成输出:

echo %DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%
这绝对不是格式为
yyyy-MM-dd
的当前日期

解决方案使用以下批处理代码:

-01-1.
这是一个独立于区域的解决方案。批次代码在


还有一个问题需要阅读哪个答案才能理解字符串替换。并在命令提示窗口中运行
set/?
以显示命令的帮助set也解释字符串替换。

指定
wmic.exe的完整路径是一个很好的防御措施。
@echo off
for /F "tokens=2 delims==." %%I in ('%SystemRoot%\System32\wbem\wmic.exe OS GET LocalDateTime /VALUE') do set "Today=%%I"
set "Today=%Today:~0,4%-%Today:~4,2%-%Today:~6,2%"
mkdir "SVN_BACKUP_DUMP_TEST\%Today%" 2>nul
cd "SVN_BACKUP_DUMP_TEST\%Today%"