如何使用命令行创建带时间戳的文件

时间:2014-08-21 14:57:58

标签: windows command-line cmd

这个问题可能对每个人都很简单,但是在使用命令行在c:\ drive中创建文件时,我很难执行时间戳命令(假设是一个txt文件)。

我正在使用的语法:

c:\> echo >"C:\EmptyFile%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.txt"
c:\> pause

,输出为“系统找不到指定的路径。”

我在驱动器中成功创建文件的进一步使用以下命令:

c:\> echo. 2>"C:\EmptyFile%DATE:~-4%.txt"

在C驱动器中创建的文件名称为:EmptyFile2014.txt

似乎命令行最多只占两个百分号,但我想要一个完整的日期,年-mm-dd。

谢谢你们

1 个答案:

答案 0 :(得分:2)

问题不是百分号的数量,而echo本身会产生错误消息。您可以使用我在下面显示的echo(type nul甚至break,这会创建一个零个再见文件,并且输入很短。

相关提示是,使用%date%是不可靠的,因为不同的计算机可以使用%date%字符串的不同格式。

此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & 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 "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%" & set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"

break > "C:\EmptyFile - %fullstamp%"

Pause