Windows 使用特定文件名批量迭代文件列表

Windows 使用特定文件名批量迭代文件列表,windows,batch-file,iteration,Windows,Batch File,Iteration,大家好,我是一个编程高手(在实践中),不过我已经完成了一些课程,如果我在我的问题上浪费了你们的时间,我提前向你们道歉 我想使用我已经制作的批处理文件处理图像,问题是我需要使用文件名作为输入处理100多个图像,我想知道如何实现这一点 我的脚本是这样的 @echo on echo file name convention:M02-ASCA-ASCSMR02-NA-3.2-20140129081200.000000000Z-1095218.bfr echo test from UMARF echo n

大家好,我是一个编程高手(在实践中),不过我已经完成了一些课程,如果我在我的问题上浪费了你们的时间,我提前向你们道歉

我想使用我已经制作的批处理文件处理图像,问题是我需要使用文件名作为输入处理100多个图像,我想知道如何实现这一点

我的脚本是这样的

@echo on
echo file name convention:M02-ASCA-ASCSMR02-NA-3.2-20140129081200.000000000Z-1095218.bfr
echo test from UMARF
echo note orbit number as %9
rem set orbitnumber=%9


set longfilename= %filename% 
rem: shorfilename1=yyyymmdd
set shortfilename1=%longfilename:~26,12%
echo shortfilename1
pause
set PATH=%D:\geonetcast\Software\ILWIS\Ilwis372_oct2012\Extensions\GEONETCast-Toolbox\util%
call 7z.exe e %longfilename%.bz2
pause
echo on
set PATH=%D:\geonetcast\Software\ILWIS\Ilwis372_oct2012\Extensions\GEONETCast-Toolbox\util%
pause

rem: Ascat surface soil moisture
rem: in top 5 cm of soil
rem: output point map is estimate of water saturation from 0-100%


set VBUFR_TABLE_DIR=D:\geonetcast\Software\ILWIS\Ilwis372_oct2012\Extensions\GEONETCast-Toolbox\util\tables
set VBUFR_DATA_DIR=D:\test


call bufrtool.exe pick %longfilename% 6001 5001 40001 40002 40003 40007 > D:\test\%shortfilename1%_org.txt

call deletelines.exe D:\test\%shortfilename1%_org.txt D:\test\%shortfilename1%_imp.txt 7
copy D:\geonetcast\Software\ILWIS\Ilwis372_oct2012\Extensions\GEONETCast-Toolbox\util\asc.dm# 
copy D:\geonetcast\Software\ILWIS\Ilwis372_oct2012\Extensions\GEONETCast-Toolbox\util\asc.dom %shortfilename1%.dom

set PATH=%D:\geonetcast\Software\ILWIS\Ilwis372_oct2012%
call ilwis.exe -C D:\test\%shortfilename1%.tbt:=table(D:\test\%shortfilename1%_imp.txt,Space,Convert,none,ID(D:\test\%shortfilename1%.dom{id}),X(value.dom{-180:180:0.00001}),Y(value.dom{-90:90:0.00001}),SM_perc(value.dom{0:100:0.01}),Error_perc(value.dom{0:100:0.01}),Mean_SM(value.dom{0:100:0.0001}),Quality(value.dom{0:100:1}));
call ilwis.exe -C D:\test\%shortfilename1%_smperc.mpp:=PointMapFromTable(D:\test\%shortfilename1%,LatlonWGS84,SM_perc);
rem
结束

(我知道有点长)-我已经找到了一个解决方案,我可以使用,但目前正在努力,我在另一个网站上找到了这段代码,但无法让它在我的网站上运行

FileList = dir('*.csv');
N = size(FileList,1);

for k = 1:N

   % get the file name:
   filename = FileList(k).name
   disp(filename);

   % insert your script code here
非常感谢你的帮助

问候 J-bon3

在批处理文件中,在命令提示下使用%%a而不是%a。看

for /?
你也可以看到

forfiles /?

如果文件中有文件列表。像这样:

FileList.txt:

File1.xxx
File2.xxx
File3.xxx
File5.xxx
您可以使用一个简单的
FOR
循环和
调用来执行您想要的操作:

@echo off
for /f "delims=" %%a in ('type filelist.txt') do call:Work %%a
Echo Done ...
exit/b

:work
set $file=%1
echo Treating File : [%$file%]
输出:

Treating File : [File1.xxx]
Treating File : [File2.xxx]
Treating File : [File3.xxx]
Treating File : [File5.xxx]
Done ...

该文件在VAR
%$file%
@tony_bd中表示感谢您的帮助,它工作得很好,我使用了sacha的方法,它节省了我的工作时间。。。
Treating File : [File1.xxx]
Treating File : [File2.xxx]
Treating File : [File3.xxx]
Treating File : [File5.xxx]
Done ...