我遇到了问题
我需要修改文件的日期。我使用Windows批处理脚本。但是我无法获得修改日期并拆分它们。
我目前正在使用此命令
for /f %a in ('dir /b') do @echo %a %~ta
结果
file89401.txt 06/18/2005 05:37 AM
file8941.txt 11/21/2000 03:48 PM
file89411.txt 09/02/2008 02:14 PM
file89421.txt 03/01/2012 02:06 PM
file89431.txt 10/23/2001 06:48 AM
file89441.txt 10/27/2010 10:21 AM
file89451.txt 11/11/2011 05:40 AM
file89461.txt 11/23/2000 02:48 AM
file89471.txt 10/10/2001 01:28 AM
file89481.txt 07/14/2000 10:17 AM
file89491.txt 02/21/2004 10:24 PM
file89501.txt 03/12/2011 09:42 AM
file8951.txt 09/26/2003 11:31 PM
file89511.txt 08/17/2001 02:31 AM
file89521.txt 01/01/2004 01:11 PM
我只需要修改日期和格式
2005/06/18
2000/1/21
2008/09/02
2012/03/01
2001/10/23
2010/10/27
2011/11/11
2000/11/23
2001/10/10
2000/07/14
2004/02/21
2011/03/12
2003/9/26
2001/08/17
2004/01/01
请帮助我,对不起我的英语不好:(
答案 0 :(得分:1)
假设您希望在目录 C:\ Users \ test 下看到文件的修改日期,格式为 yyyy / mm / dd ,下面适用于您:< / p>
@echo off
setlocal
for %%F in ("C:\Users\test\*") do (
for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tF") do (
echo %%C/%%A/%%B
)
)
<强>结果:强>
2013/12/21
2013/11/19
2012/12/28
2012/10/25
2011/10/25
2011/11/09
2010/12/21
答案 1 :(得分:0)
findstr只能输出日期/时间,而不能仅输出日期。 您可以使用某些代码修复它或使用执行您想要的命令:
forfiles /c "cmd /c echo @fdate"
这不是一个很好的knwon命令,但它会给你日期。
有关详细信息,请参阅forfiles /?
将日期格式化为所需的格式使用:
for /f "tokens=1,2,3 delims=." %%a in (' forfiles /m *.* /c "cmd /c echo @fdate" ') do echo %%c/%%b/%%a
(注意,这是语言相关的这条线是德语格式(“25.12.2013”)
对于你的格式echo %%c/%%a/%%b
应该做的伎俩)
修改强> 刚注意到,你想要在一天或一个月没有前导零。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=." %%a in (' forfiles /m *.* /c "cmd /c echo @fdate" ') do (
set dat=%%c/%%a/%%b
set dat=!dat:/0=/!
REM replaced "/0" with "/"
echo %!dat!
)
答案 2 :(得分:0)
从提示符开始,
for %a in (*.*) do @for /f "delims=/ " %i in ("%~ta") do @echo %k/%i/%j
应该送货。
作为批处理文件,
@echo off
for %%a in (*.*) do for /f "delims=/ " %%i in ("%%~ta") do echo %%k/%%i/%%j