什么时候制作.bat文件并运行不起作用WINDOWS 7

时间:2017-11-13 10:45:22

标签: cmd

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%

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

1 个答案:

答案 0 :(得分:0)

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

在我的计算机上将德语设为国家/地区,echo %DATE%的帐户输出为13.11.2017。所以日期格式为DD.MM.YYYY,点为分隔符,没有工作日,日期和月份总是两位数,即使是小于10的日期或月份。

命令行

echo %DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%

在我的机器上使用我的帐户和我的区域设置生成输出:

-01-1.

这绝对不是YYYY-MM-DD格式的当前日期。

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

@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%"

这是一个独立于地区的解决方案。批次代码在回答中完整解释 %date% produces different result in batch file when run from Scheduled Tasks in Server 2016

另请参阅What does %date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2% mean?上的答案并在命令提示符窗口set /?中运行,以显示命令 SET 解释字符串替换的帮助。