我正在尝试创建一个批处理脚本,该脚本将遍历一堆文件,并将缺少的文件名称附加到名为“'donotexist''的文本文件中。文件格式为:
13050122,13050216(yy,mm,dd,hh),这是我有兴趣挑选的缺失日子。
所以这是我到目前为止的剧本:
@echo on
setlocal enableDelayedExpansion
set year=13
set "ext=.edt
pause
for /l %%a in (*501*,1,*531*) do (
pause
IF EXIST "%%a" (
ECHO "%%a" exists
) ELSE (
ECHO %%b doesn't exist >> file_pathway\doesnotexist.txt
)
)
脚本运行,但它用:
填充didnotexist.txt文件0 doesn't exist
%b doesn't exist
有谁知道如何列出缺少的日子。我希望这是有道理的。
非常感谢提前。
答案 0 :(得分:1)
这是解决此问题的一种非常简单的方法:
@echo off
setlocal EnableDelayedExpansion
set /A "year=13, feb=28+^!(year%%4)"
set i=0
for %%a in (31 %feb% 31 30 31 30 31 31 30 31 30 31) do (
set /A i+=1
set "dpm[!i!]=%%a"
)
set i=100
for /L %%m in (1,1,12) do (
set /A i+=1
for /L %%d in (1,1,!dpm[%%m]!) do (
IF EXIST "%year%!i:~1!%%d*" (
ECHO "%year%!i:~1!%%d" exists
) ELSE (
ECHO %year%!i:~1!%%d doesn't exist >> file_pathway\doesnotexist.txt
)
)
)
但是,要小心!这种方法将在2400年2月失败!的 ;)
强>