Ram*_*oni 38 windows batch-file
我不太了解windows .bat文件的语法.我的简单要求是在特定位置创建一个文件夹,其名称为当前日期.我尝试在谷歌搜索这个但没有得到任何好的选择.有没有办法做到这一点?
Ste*_*lli 38
mkdir %date:~-4,4%%date:~-10,2%%date:~7,2%
Run Code Online (Sandbox Code Playgroud)
Joe*_*oey 21
快速和脏:如果您可以使用UTC而不是本地日期,您可以使用:
for /f "skip=1" %%d in ('wmic os get localdatetime') do if not defined mydate set mydate=%%d
md %mydate:~0,8%
Run Code Online (Sandbox Code Playgroud)
适用于所有语言环境.但是,仅在XP及更高版本上.
Fra*_*ger 18
试试这个(相当于bash反引号):
for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a
mkdir %datestr%
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://ss64.com/nt/for_cmd.html
Sim*_* G. 15
你需要摆脱日期中的'/'字符才能在mkdir中使用它,如下所示:
setlocal enableextensions
set name=%DATE:/=_%
mkdir %name%
Run Code Online (Sandbox Code Playgroud)
jel*_*015 10
如果你想要mm-dd-yyyy格式,你可以使用:
mkdir %date:~-10,2%"-"%date:~7,2%"-"%date:~-4,4%
Run Code Online (Sandbox Code Playgroud)
echo var D = new Date() > tmp.js
echo D = (D.getFullYear()*100+D.getMonth()+1)*100+D.getDate() >> tmp.js
echo WScript.Echo( 'set YYYYMMDD='+D ) >> tmp.js
echo @echo off > tmp.bat
cscript //nologo tmp.js >> tmp.bat
call tmp.bat
mkdir %YYYYMMDD%
Run Code Online (Sandbox Code Playgroud)
小智 7
这取决于计算机的区域设置,因此首先使用命令提示符或通过回显日期来检查日期的输出.
为此,请创建批处理文件并添加以下内容
echo %date%
pause
Run Code Online (Sandbox Code Playgroud)
它产生一个输出,在我的例子中它显示了05/5/2015.
现在我们需要摆脱斜线(/)
为此,包括批处理文件中的以下代码.
set temp=%DATE:/=%
Run Code Online (Sandbox Code Playgroud)
如果你回显"temp",你可以看到没有斜线的日期.
现在您需要做的就是以您想要的方式格式化日期.
例如,我需要格式为YYYYMMDD的日期,然后我需要设置如下的dirname
为了解释这是如何工作的,我们需要比较temp的值
周五05062015.
现在将每个字符定位为以0开头的数字.
周五0506201 5
01234567891011
所以对于我需要的日期格式是20150605,
2015年,其中2位于第8位,所以从第8位到第4位,将在2015年.
06年,其中0位于第6位,所以从第6位到2位,将成为06.
05日,其中0位于第4位,所以从第4位到2位,将成为05.
所以最后要设置最终格式,我们有以下内容.
SET dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"
Run Code Online (Sandbox Code Playgroud)
要在日期,月份和年份之间使用" - "或"_"增强此日期格式,您可以使用以下修改
SET dirname="%temp:~8,4%-%temp:~6,2%-%temp:~4,2%"
Run Code Online (Sandbox Code Playgroud)
要么
SET dirname="%temp:~8,4%_%temp:~6,2%_%temp:~4,2%"
Run Code Online (Sandbox Code Playgroud)
所以最终的批次代码将是
================================================== ====
@echo off
set temp=%DATE:/=%
set dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"
mkdir %dirname%
Run Code Online (Sandbox Code Playgroud)
================================================== ====
该目录将在此批处理执行的位置创建.
小智 5
我遇到了一个问题,因为我的服务器绝对必须采用 MM/dd/yyyy 格式的日期,而为了整洁起见,我希望目录采用 YYYY-MM-DD 格式。以下是如何以 YYYY-MM-DD 格式获取它,无论您的区域设置如何设置。
了解使用 %DATE% 时显示的内容:
从命令提示符键入:
ECHO %DATE%
Run Code Online (Sandbox Code Playgroud)
我的版本于 2013 年 3 月 6 日发布(截至 2013 年 3 月 6 日)
因此,要获取 2013-03-06 的目录名称,请将其编码到批处理文件中:
SET dirname="%date:~6,4%-%date:~0,2%-%date:~3,2%"
mkdir %dirname%
Run Code Online (Sandbox Code Playgroud)
小智 5
for /F “tokens=1-4 delims=/ ” %%A in (‘date /t’) do (
set DateDay=%%A
set DateMonth=%%B
set DateYear=%%C
)
set CurrentDate=%DateDay%-%DateMonth%-%DateYear%
md %CurrentDate%
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个新创建的文件夹,其中包含今天的日期,格式为DD-MM-YY
来自:阿里的知识库
| 归档时间: |
|
| 查看次数: |
206554 次 |
| 最近记录: |