命令提示符/批处理文件 - 创建以今天日期命名的新文件夹
问题出现的原因是%date%变量的值取决于计算机的设置和语言环境。如果需要在未知的计算机上使用批处理文件,则可以使用以下可靠的方法来获取日期和时间戳。解决方法是使用WMIC命令获取本地日期和时间,并将其格式化为所需的格式。下面是解决方法的代码:
:: time and date stamp YYYYMMDD, HHMMSS and YYYY-MM-DD_HH-MM-SS
off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set datestamp=%dt:~0,8%
set timestamp=%dt:~8,6%
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 stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
echo stamp: "%stamp%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
pause
通过使用WMIC命令获取本地日期和时间,可以确保不依赖于语言环境。以上代码将获取到的日期和时间进行格式化,并分别存储在相应的变量中。其中,datestamp变量存储了日期(YYYYMMDD)的格式,timestamp变量存储了时间(HHMMSS)的格式,stamp变量存储了日期和时间的完整格式(YYYY-MM-DD_HH-MM-SS)。最后,使用echo命令将这些变量的值输出。
问题的原因是用户想要在命令提示符或批处理文件中创建一个以今天日期命名的新文件夹,但是之前提供的代码只能显示月份和日期,没有年份。所以用户询问如何修改代码以包含年份。
解决方法是在代码中添加一个变量来获取年份。以下是修改后的代码:
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd1="%%k"_"%%i"_"%%j"
mkdir %yyyymmdd1%
这段代码通过使用`date /t`命令获取当前日期,并使用`for /F`命令解析日期的各个部分(年份、月份和日期)。然后,使用`set`命令将日期的各个部分存储在变量`yyyymmdd1`中。最后,使用`mkdir`命令创建一个以日期命名的新文件夹。
这段代码的来源是一个之前的答案,链接为:stackoverflow.com/questions/11280077/…。在这个链接中,可以看到如何使用`%%i`、`%%k`和`%%j`以及它们之间的下划线来操作日期的不同部分。
希望这个解决方法对你有帮助!
文章标题:Command Prompt/Bat文件 - 创建以今天日期命名的新文件夹
在使用Command Prompt或Bat文件时,有时我们需要使用当前日期来命名一个新的文件夹。然而,有时候我们可能会遇到无法成功创建以今天日期命名的新文件夹的问题。下面将介绍该问题的原因以及解决方法。
问题原因:该问题的原因可能是与当前操作系统的日期格式设置不兼容。在某些情况下,日期格式可能会包含特殊字符,或者日期的顺序与所使用的命令不匹配,导致无法正确解析日期。
解决方法:为了解决这个问题,我们可以使用以下命令来创建以今天日期命名的新文件夹。请注意,以下命令需要在Command Prompt或Bat文件中使用。
for /f "tokens=1-3 delims=/" %%a in ("%date%") do md "%%a_%%b_%%c"
以上命令将当前日期分解为三个部分(年、月、日),并使用下划线将它们连接起来,然后创建一个新的文件夹。
这个命令中的"%%a_%%b_%%c"部分可以根据需要进行修改。例如,如果你想要以"YYYY-MM-DD"的格式命名文件夹,你可以将命令修改为:
for /f "tokens=1-3 delims=/" %%a in ("%date%") do md "%%a-%%b-%%c"
通过修改连接符号,你可以根据自己的需求来创建不同格式的文件夹命名。
希望以上解决方法对你有所帮助。通过使用上述命令,你应该能够成功地创建以今天日期命名的新文件夹。如果你遇到任何问题或有任何疑问,请随时向我们提问。