我是这个论坛的新手,从不使用Windows批处理文件,但是对于我的研究论文,我需要使用以下命令将meteo文件(.rad)转换为.asc文件:
.\gridasci.exe ver_500-2012071712.rad meteo-2012071712.asc
其中2012071712是包含时间的日期。现在我有很多.rad文件,它们都具有相同的结构但是日期不同,并希望将它们转换为.asc文件,对于这些文件,windows批处理文件会很好,它会遍历所有文件。所以代码草图可能如下所示:
for (all files with right format) in (this directory) do (
date = extract date from (ver_500-date.rad)
.\gridasci.exe ver_500-date.rad meteo-date.asc
)
非常感谢任何帮助!
非常感谢你,祝你有个美好的一天。
答案 0 :(得分:0)
也许:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (ver_500-*.rad) DO (SET "_=%%~nA"
ECHO=.\gridasci.exe %%A meteo-!_:*-=!.asc)
ENDLOCAL
TIMEOUT -1 >NUL
EXIT/B
如果对返回的结果满意,则对文件从第4行删除ECHO=
运行gridasci。
答案 1 :(得分:0)
假设您使用Windows NT命令处理器(cmd.exe)...
setlocal EnableDelayedExpansion
for %%f in (ver_500-*.rad) do (
set "date=%%f"
set "date=!date:ver_500-=!"
set "date=!date:.rad=!"
.\gridasci.exe ver_500-!date!.rad meteo-!date!.asc
)
您应该了解Delayed Expansion以及string replace in variable expansion如何运作。