@echo off
rem %1 為路徑參數(shù);
rem del /q /s del /q /s D:\數(shù)據(jù)庫-勿刪\Data\config.xml 刪除文件
rem rename D:\數(shù)據(jù)庫-勿刪\Data\configC.xml config.xml 重命名文件
del /q /s %1\config.xml
rename %1\configC.xml config.xml
一、刪除文件
1、自動刪除文件批處理
Example: del /q /s d:\test\a.bat //將直接刪除d:\test\a.bat,沒有任務(wù)提示二 、重命名文件
rename 舊文件 新文件名
ren取自rename的前三個字母,name在英文中有“為……取名”的意思,而re是前綴,有“重新做某事”的含義,結(jié)合起來,rename就是重命名的含義。
ren 的用法很簡單,其使用格式為:ren 舊文件 新文件名。例如,把test.txt改寫為abc.txt,使用 ren test.txt abc.txt即可。
需要注意的是,舊文件可以使用絕對路徑,也可以使用相對路徑,但是,新文件名不能使用任何路徑,只能是新的文件名,即使這個路徑就是當(dāng)前目錄。例如:需要修改d:\test\abc.txt這個文件的名字為xyz.txt的話,如果當(dāng)前路徑位于d:\test,那么,命令可以寫成:ren abc.txt xyz.txt、ren d:\test\abc.txt xyz.txt,但是,絕對不能寫成ren d:\test\abc.txt d:\test\abc.txt這樣的格式。之所以會有這個古怪的規(guī)定,可能是一旦把路徑寫成另外的目錄,ren就具備了“移動文件+重命名文件”的功能了,這和它的定位不相符。
雖然ren的用法很簡單,但是,它的功能卻很強(qiáng)大,這主要得益于ren支持*和?這兩個通配符:*表示任意多個字符,?表示一個字符。例如,要把所有的以.txt作為后綴名的文件改為以.doc作為后綴名,使用ren *.txt *.doc 即可,簡簡單單的一條語句,瞬間就改動了大量的文件,CMD命令簡潔而又不失強(qiáng)大的特點在這里體現(xiàn)得淋漓盡致。又例如,要把以abc字符串打頭、并且只有5個字符的txt文件改名為以xyz字符串打頭,那么,可以這樣寫:ren abc??.txt xyz??.txt。
需要引起高度重視的是,ren在使用通配符的時候,它的匹配規(guī)則十分奇特且過于復(fù)雜,不適合新手理解,在此不再展開做詳細(xì)的解釋。若想了解其中的詳情,請參考這篇帖子:這是不是ren的一個bug?http://www.cn-dos.net/forum/viewthread.php?tid=29538。若確實需要使用通配符,建議熟讀這篇帖子;若實在難以理解,則退而求其次,只用通配符做后綴名的修改工作,可以不用深究這些復(fù)雜的規(guī)則。
對于文件夾,ren同樣適用。
ren還有一個十分奇特的屬性:當(dāng)文件具備隱藏屬性或系統(tǒng)屬性的時候,ren將不起作用,需要把文件的隱藏或系統(tǒng)屬性去掉方可更名,對只讀屬性的文件,ren可順利更名。這在很多時候給我們制造了很多麻煩:當(dāng)你不知道要即將更名的文件是否具備隱藏或系統(tǒng)屬性的時候,直接ren是很成問題的,;如果希望在重命名文件的時候,還必須保持原有的文件屬性,則更加讓人痛苦萬分。
怎么辦?
如果不介意文件的屬性是否被改動,那么,保險的做法是,用 attrib -s -h 命令先去掉文件可能存在的系統(tǒng)屬性或隱藏屬性,然后再ren之;如果還要求更名后的文件要保持原有的屬性的話,高效的做法是:先用for語句中的 %%~ai 擴(kuò)展獲取原文件的屬性,經(jīng)過處理之后保存到變量中去,然后用 attrib -s -h 去掉文件可能存在的系統(tǒng)屬性或隱藏屬性,ren之后,再讀取保留在變量中的屬性值,用 attrib 恢復(fù)原有的文件屬性。
http://www.bathome.net/thread-3318-1-1.html
聯(lián)系客服