Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批量检查多个文件范围_Batch File - Fatal编程技术网

Batch file 批量检查多个文件范围

Batch file 批量检查多个文件范围,batch-file,Batch File,我需要检查文件夹中是否按时间顺序存在多个文件。我有一些问题,希望你能帮助我 有一些发票需要检查-编号从13073713到13106972。发票包含前缀“F”和贷方通知“G”,例如“F13106972.pdf”和“G13106972.pdf”后缀.pdf。我试图做的是循环遍历文件夹,并按时间顺序将所有缺少的文件输出到log.txt中。我做错了什么 @echo off & setlocal set "Ordner=%userprofile%\Desktop\test" set "Log=%u

我需要检查文件夹中是否按时间顺序存在多个文件。我有一些问题,希望你能帮助我

有一些发票需要检查-编号从13073713到13106972。发票包含前缀“F”和贷方通知“G”,例如“F13106972.pdf”和“G13106972.pdf”后缀.pdf。我试图做的是循环遍历文件夹,并按时间顺序将所有缺少的文件输出到log.txt中。我做错了什么

@echo off & setlocal
set "Ordner=%userprofile%\Desktop\test"
set "Log=%userprofile%\Desktop\Test\log.txt"
set /a from=13073713
set /a to=13106972
del "%Log%" 2 > nul
for /L %%i in(%from%,1,%to%)do (
if not exist "%Ordner%\F%i.pdf" echo F%%i
if not exist "%Ordner%\G%i.pdf" echo G%%i) >> "%Log%"
@echo关闭
setlocal enableextensions disabledelayedexpansion
设置“Ordner=%userprofile%\Desktop\test”
设置“Log=%userprofile%\Desktop\Test\Log.txt”
设置“from=13073713”
设置“至=13106972”
(对于/L%%i in(%从%1%到%)do(
如果不存在“%Ordner%\F%%i.pdf”echo F%%i
如果不存在“%Ordner%\G%%i.pdf”echo G%%i
))>“%Log%”
主要是打字错误。从您的代码中更改/更正:

  • set/a
    in只需要向解析器指示要存储在变量中的值包含某种需要计算的算术运算。在批处理文件中,最后,所有值都是字符串。代码中没有错误(它可以工作),但不是必需的

  • for
    命令中的可替换参数为
    %%i
    。在批处理文件中,对它的所有引用必须使用相同的双百分比。您的一些参考资料是
    %i

  • 子句中的
    后面需要空格

  • 日志文件删除已被删除。所有
    for
    命令都包含在一个块(括号)中,并重定向到日志文件。如果它存在,它将被覆盖