我正在尝试创建一个使用以下格式创建txt文件的bat文件:
"
[date]
2013/29/07
10:38:00
"
该代码不能与bat文件一起使用,只有当我将它放在带有复制粘贴的cmd手册中时:
echo [date] > e:\TAG.txt
for /f "tokens=2-4 delims=/ " %i in ('date /t') do ( echo %k/%j/%i >> e:\TAG.txt goto :eof)
for /F "tokens=1-4 delims=: " %i in ('time /t') do echo %i:%j:00 >> e:\TAG.txt
我做错了什么?
答案 0 :(得分:1)
,将for循环中的%加倍:
echo [date] > e:\TAG.txt
for /f "tokens=2-4 delims=/ " %%i in ('date /t') do ( echo %%k/%%j/%%i >> e:\TAG.txt goto :eof)
for /F "tokens=1-4 delims=: " %%i in ('time /t') do echo %%i:%%j:00 >> e:\TAG.txt
(命令行为单%,批量文件为双%% - 但仅限于for循环)
答案 1 :(得分:1)
您需要在批处理文件中将%
替换为%%
。
你内心不需要goto :eof
。即使您需要,也必须在两个命令之间使用&
。
在时间部分,你不需要4个参数,只需2个。
还要考虑使用%DATE%
和%TIME%
,而不是调用TIME /T
和DATE /T
:
echo [date] > e:\TAG.txt
for /f "tokens=2-4 delims=/ " %%i in ("%date%") do echo %%k/%%j/%%i >> e:\TAG.txt
for /F "tokens=1-2 delims=: " %%i in ("%time%") do echo %%i:%%j:00 >> e:\TAG.txt
编辑:单行:
echo [date] > e:\TAG.txt
for /f "tokens=2-7 delims=/ " %%i in ("%date%/%time::=/%") do echo %%k/%%j/%%i %%l:%%m:%%n >> e:\TAG.txt
答案 2 :(得分:0)
只需将开头添加到该行的开头。
批处理文件的内容应如下所示:
start for /f "tokens=2-4 delims=/ " %i in ('date /t') do echo %k/%j/%i >> e:\TAG.txt
答案 3 :(得分:0)
此技术消除了填充和不同语言环境/计算机设置的问题。
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
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%
>e:\TAG.txt echo [date]
>>e:\TAG.txt echo %yyyy%/%dd%/%mm%
>>e:\TAG.txt echo %hh%:%min%:%sec%