最近因为项目需要,在linux安装basemap图像库的时候,安装成功后,一直提示缺失mpl_toolkits.Basemap。尝试了半天时间没有解决问题,可能问题出在其他依赖库的版本上。遂在win平台下实现功能。
本次使用forfiles是用bat脚本处理定时处理文件,涉及到文件列表的过滤,文件名称获取,文件路径的获取,以及多参数的变量参数传递等。
1、文件列表过滤
@echo off
forfiles /P "D:\idata" /M *ER24*24024.txt /C "cmd /c del/F/s/q @file"
/M参数后是过滤条件,加/S 实现子目录递归查询
2、文件名、文件路径、变量多参数等
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set cachefile=D:/idata/
set filedesc=.nc
for /F "tokens=1-2,* delims=|" %%K in ('forfiles /P "D:\data\" /S /M *ER24*24024.txt /C "cmd /c echo @fname^|@path"') do (cmd /c echo %cachefile%%%~K%filedesc%)
endlocal
tokens可以使用多个参数,如1-2表示第1个、第2个参数,后面对应参数用%%K,%%L。如果加上参数上加上~,则是去掉字符串的引号。第一个参数和第二次的英文字母要连续(测试得出的经验)。如果拼接字符串则直接拼接到一起即可。