IDL 文件批量重命名

文件批量重命名,批量删除、复制都可参考

批量文件重命名(不改变文件后缀名,即文件格式)
我这里的情况是:某程序生成的文件都有文件名+ _CloudExtraction 后缀,而为了需要,需要改成文件名+mask的形式,
如:aaaaa _CloudExtraction.jpg --> aaaaamask.jpg

IDL代码如下

pro FileRename
  compile_opt IDL2

  filesearch='F:\YXY-GF-6\HaiYang\ImgAndCloudmask_1_51'; 'E:\image\tifCloudDet'
  ext='.JPG';文件名后缀
  file=FILE_SEARCH(filesearch,'*.JPG',count=num);打开影像文件列表

  for j=0,num-1 do begin
    inputfile=file[j]

    ;这里inputfile类似于"E:\image\HY\122.tif_CloudExtraction.jpg"这样的字符串
    ;将字符串以"\"符号打断,以便取最后一个"\"后的字符串"122.tif_CloudExtraction.jpg"经变换后做输出文件名
    inputfilesplit = strsplit(inputfile,'\',/extract)
    outputfilename=inputfilesplit[N_ELEMENTS(inputfilesplit)-1];取打断后最后一个"\"后的字符串做输出文件名
    
    ;;如果影像有后缀名,如.jpg,则需要加下面一段
    inputfilesplit = strsplit(outputfilename,'.',/extract)
    outputfilename=inputfilesplit[0];取打断后最后一个"\"后的字符串做输出文件名
    ;;如果影像有后缀名,如.dat,则需要加上面一段
    
    n=strpos(outputfilename,"_CloudExtraction")
    if n ne -1 then  begin
      outputfilename=strmid(outputfilename,0,n)
    endif
    outputfilename=filesearch+'\'+outputfilename+'mask'+ext
    file_move,inputfile,outputfilename

    print,FORMAT='(%"%d/%d finished!")',j+1,num ;打印finished,提示完成
  endfor
end

你可能感兴趣的:(IDL,经验分享)