批處理應用:根據檔案內容進行重新命名操作_DOS/BAT

來源:互聯網
上載者:User
我想實現以下的目的:
首先,我有個.dat檔案,名字是固定的,需要更改這個檔案名稱.
.dat第1行的內容是: 10107xxxxxx,代表的意思是2007.01.01,後面的x內容不固定.如果是1~9月,則第1個字元是空的.
現在要根據這行內容來改檔案名稱.比如10107XXXXXX,改為c01-0101.cvs.
110107xxxxxx,改為c01-1101.cvs
請問該怎麼寫這個BAT檔案.


分析:
讀出第一行內容到一變數
區變數的第5個字元,可以判斷是否為0 
1)如果是0,取變數前2位為月份,否則取前1位,並首碼0,作為月份
2)如果是0,取變數3-4位為月份,否則取2-3位,作為日

解答:
@echo off
for %%i in (*.dat) do call :goren %%i
goto end

:goren
set /p firstln=<%1
set year=%firstln:~4,1%

if /i %year% GTR 0 (set month=0%firstln:~0,1%& set day=%firstln:~1,2%) else (
    set month=%firstln:~0,2%& set day=%firstln:~2,2%
)
ren %1 c01-%month%%day%.cvs
goto end

:end

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.