在DOS裏我如何批量修改文件名
當我們要批量修改文件名的時候,我們要如何去做到呢?首先我們要知道這些文件都是上面格式的,下面小編給大家分享下要如何做到吧,裏面都有變量和參數介紹。
今天要批量重命名一些文件,(即:目錄FILE下有很多子目錄file1,file2,file3……filen子目錄中都有一個文件aaa.jpg,現要實現aaa.jpg重名爲帶子目錄的名稱,如file1下面的命名爲file1.jpg),想到DOS處理,網上找了些現成腳本,沒達到預期的目的,一時惱火,就小補了下DOS相關知識,包括基本命令,重點研究了下批量處理命令。
如何在DOS下批量修改文件名?
方法一的思路與方法二大致相同,只不過在獲取完整路徑的時候,換用了效率更高的 for /r 語句,並用一個變量var來獲取文件所在文件夾的完整路徑,通過判斷var是否經過賦值來判斷當前處理的音樂文件是否位於同一目錄下,因爲直接用 %%~dpa 獲取到的字符串最後有一個反斜槓,所以,第二個for語句中,用 !var:~,-1! 把最後的反斜槓去掉了(在for語句內部,如果要 引用已經發生了改變的變量,必須使用變量延遲功能,也就是最開始的 setlocal 語句),後面的思路和方法二的一樣。其實,方法一的代碼大可不必判斷當前處理的文件與上一次處理的文件是否位於同一目錄下,因爲 for /r 的時候,會獲得文件的完整路徑,只需要對完整路徑直接進行操作就可以了,可以借鑑隨風的`做法,在 %%~dpa 的時候,直接在最後加上一個點號,可以使得效率進一步提升。
方法一代碼:
01@echo off &setlocal enabledelayedexpansion
02for /r %%a in (aaa.jpg) do (if not defined %%~dpa set "var=%%~dpa"&set
03"%%~dpa=a"
04for %%i in ("!var:~,-1!")do ren "%%~fa" "%%~ni.jpg")
05pause
複製代碼
方法二用 dir /a-d /b /s 來獲取完整路徑名,放到for語句中來解析完整路徑字符串,用 %%~dpa. 來獲取音樂文件所處的文件夾完整路徑(這裏使用了一個小技巧:在字符串最後添加一個點號,從而使得for語句的%%~ni把文件夾名當做文件名來處理,我直接運行以上腳本發現一直出問題,後來發現先顯示下%%~dpa. 即在ren 前加上echo "%%~dpa." 再執行腳本就OK了,具體原因不明,望高手解答),再用 %%~ni 獲取文件夾名,用ren來實現改名,%%~nxi 獲取原文件完整的文件名和後綴名。
方法二代碼:
01@echo off
02for /f "delims=" %%i in ('dir /a-d /b /s D:1*.jpg') do (ren "%%i" "%%~nxi" )
03pause
複製代碼
基本格式(這裏寫的是在命令行裏用的格式,如果是在批處理中,需要把其中%再多加個%形成%%):
for /參數 %變量 in (集) do 命令
注:上面除中文的以外,其餘的是按它的格式要求書寫的,大小寫都行。
參數:FOR分四種參數 D L R F,並且有的參數還可附加另外的選項下面會分別介紹
變量:(記住如果是在批處理中使用for命令時,變量前的%需改爲%%)這個變量名是由單個字母組成且區分大小寫(原幫助是這麼說的,實際運用中用單個數字作爲變量名試過證明也可行),如%B和%b代表的是不同的變量。
一、參數 /d
for /d %%變量 in (集) do 命令
/d 參數是指定僅對目錄而不是文件執行的for命令。
for /d %a in (c:*.*) do @echo %a
二、參數 /R
/R參數之後還可帶盤符及路徑
for /r 此處可以帶有路徑 %變量 in (集) do 命令
例1:
01@echo off
02rem 顯示d:盤中所有文件名爲file1和file2的列表
03for /r d: %%h in (file1,file2) do if exist %%h echo %%h
04pause
複製代碼
例2:
01@echo off
02rem 刪除C盤中所有*的文件
03for /r c: %%h in (*) do del /q %%h
04pause
複製代碼
注:del /q 表示用安靜模式刪除(不需確認)
三、參數 /L
for /L %%變量 in (起始值,每次增值,結束時的比較值) do 命令
(上面L也可用小寫,主要爲了視覺上不與數字1混淆而沒用小寫)
(起始值,每次增值,結束時的比較值)相當於一個等差數字序列,從“起始值”的數字開始,每次增加多少(也可設定爲負數)爲“每次增值”,並與“結束時的比較值”比較,超出則退出for循環(也不執行本輪後面的do 命令)。
例:
01@echo off
02::在D盤建立aa1~ aa5五個文件夾
03for /L %%i in (1,1,5) do md d:aa %%i
04pause
複製代碼
四、參數 /f
這個參數/f將會打開(集)裏的文件,使for命令能處理文本文件的讀取和添加刪除替換等編輯性的操作,可謂功能強大,因此也相對複雜一些。
五、變量
~I - 刪除任何引號("),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件屬性
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
%~$PATH:I - 查找列在路徑環境變量的目錄,並將 %I 擴充到找到的第一個完全合格的名稱。如果環境變量名未被定義,或者沒有找到文件,此組合鍵會擴充到空字符串。
以上便是在DOS下批量修改文件名的一些見解和方法,用戶可以根據變量和參數對批量修改文件名的文件進行處理。
-
計算機軟件安全檢測技術研究論文
摘要:隨着現代信息技術不斷髮展,計算機在人們日常生活及工作過程中有着越來越廣泛的應用,對社會發展起到很大促進作用。計算機軟件作爲計算機組成中的重要部分,保證計算機軟件安全是保證計算機有效應用的關鍵。因此,在計算機應用過程中,應當通過有效技術手段對計算機...
-
計算機軟件專業大學生的社會實踐報告
我很慶幸在這個寒假中進行了爲期一個月的社會實踐。接受我的單位是武漢市江岸區新馬路小湖南酒樓,我任職服務員。在這一次實踐中,我終於體會到了生活中的苦與樂、痛與累。同時,我也學會了很多以前不懂的東西。在剛去的頭三天裏,我真的是不想幹這份工作。但是我心中...
-
計算機軟件對平面設計的重要性以及優勢
計算機軟件對平面設計的重要性以及優勢平面設計包含了廣告設計、動畫設計、網頁設計、包裝設計、書籍設計等多個方面的內容。通過平面設計,設計師可以通過各種視覺元素的組合來把信息和構思傳遞給大衆。成功的平面設計作品,能夠在順利傳遞信息的同時,表現出一種感...
-
【精】計算機軟件實習報告
隨着個人的文明素養不斷提升,越來越多的事務都會使用到報告,報告成爲了一種新興產業。你所見過的報告是什麼樣的呢?下面是小編整理的計算機軟件實習報告,希望對大家有所幫助。計算機軟件實習報告1一、實習目的1、透過實習能夠加強和鞏固理論知識,能夠在實踐中培養自...