Board logo

标题: [文本处理] [已解决]批处理怎样格式化文件名? [打印本页]

作者: cncqly    时间: 2019-5-13 09:27     标题: [已解决]批处理怎样格式化文件名?

本帖最后由 cncqly 于 2019-5-13 10:11 编辑

d:\BrFaxRx\PC-FAX Rx\新建文件夹>dir /b fax*.tif
Fax 4-4-2018 16;44;53.tif
Fax 4-23-2018 15;23;28.tif
传真机收到的文件名如上所示,如何格式化以下格式:
20180403164453.tif
20180423152328.tif
请各位帮助,谢谢!
作者: Batcher    时间: 2019-5-13 09:48

你先观察一下时、分、秒只有个位数的时候是怎么处理的?例如:
Fax 4-4-2018 6;4;3.tif
Fax 4-4-2018 06;04;03.tif
看看原始文件名具体是哪种格式
作者: cncqly    时间: 2019-5-13 09:57

年月日时分秒都没有前置0
作者: Batcher    时间: 2019-5-13 10:01

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%x in ('dir /b /a-d *.tif') do (
  4.     for /f "tokens=1-7 delims=-;. " %%a in ("%%x") do (
  5.         set yyyy=%%d
  6.         set mm=0%%b
  7.         set dd=0%%c
  8.         set hh=0%%e
  9.         set mi=0%%f
  10.         set ss=0%%g
  11.         ren "%%x" "!yyyy!!mm:~-2!!dd:~-2!!hh:~-2!!mi:~-2!!ss:~-2!%%~xx"
  12.     )
  13. )
复制代码

作者: xczxczxcz    时间: 2019-5-13 10:01

$a = '4-4-2018 16;44;53';
$str = [datetime]:arse(($a -replace ';',':')) -replace '\D+';
试下chrome内核EDGE
作者: cncqly    时间: 2019-5-13 10:12

回复 4# Batcher


    测试有效,谢谢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2