我在名为cores的文件夹中有一堆文件。这些文件的名称类似c_000223〜a,c_120302〜a等。
我有一个带有for循环的批处理文件。它应该遍历每个核心文件,并将其发送到另一个名为RunMSFlux的批处理文件进行处理。问题是RunMSFlux不接受核心文件名。它不需要开头的“ c_”,只是000223〜a,120302〜a,依此类推。
我不能修改RunMSFlux来接受“ c_”,因为它是只读的。另外,我不想重命名核心文件,因为批处理文件之外的其他程序会使用这些核心文件。因此,我需要一种删除文件名开头的c_并将其传递给RunMSFlux的方法。
到目前为止,这是我的批处理文件:
@echo on
set bindirectory=K:\Physics\bin\1112\
set coredirectory=K:\Physics\cores\
set quiet=yes
for %%f in ( %coredirectory%* ) do (
call %bindirectory%\RunMSFlux.bat %%f measbu measbu
)
有没有一种方法可以让批处理文件在将文件名传递给for循环之前先剥离c_?或者,也许我可以创建一个.txt文件,其中包含截短的核心文件的名称,然后让脚本逐行通过该脚本,然后将这些名称传递给for循环?
经过大量的哭泣和咬牙切齿,我相信我终于有了一些有效的方法:
@echo on
set bindirectory=K:\Physics\bin\1112\
set coredirectory=K:\Physics\cores\
set quiet=yes
for /F "tokens=1* eol=_ delims=_" %%g in ( 'dir /A:-d /B %coredirectory%' ) do (
call %bindirectory%RunMSFlux.bat %%h measbu measbu
)
在将截断的文件名传递到循环内的RunMSFlux.bat之前,标记,eol和delims除去“ dir / A:-d / B”列出的文件名中的c_。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句