濮阳杆衣贸易有限公司

主頁 > 知識庫 > 批處理實(shí)現(xiàn)批量修改文件名

批處理實(shí)現(xiàn)批量修改文件名

熱門標(biāo)簽:清遠(yuǎn)百度地圖標(biāo)注店鋪位置 呼倫貝爾外呼系統(tǒng) 電話機(jī)器人產(chǎn)品怎么樣 雷霆電銷機(jī)器人怎么樣 智能打電話機(jī)器人收費(fèi) 玉林市機(jī)器人外呼系統(tǒng)哪家好 如何申請400電話業(yè)務(wù)mm 電話機(jī)器人全國招商 如何弄地圖標(biāo)注

我們已經(jīng)會使用循環(huán)命令對大量文件改名進(jìn)行批量處理。但總結(jié)一下,該批處理并不是很健壯。

判斷一個程序的好壞,往往不是站在程序員的角度,而從用戶的角度出發(fā)。

比如:在用戶使用它的時候,如果輸入了不正確的路徑格式怎么辦?如果輸入了含有非法符號的前綴怎么辦?輸入的擴(kuò)展名也有問題怎么辦?改完名后看不到是否執(zhí)行成功的反饋信息,等等。帶著這些想法,我們將原程序再次修改一下。

:::::::批量修改文件名.bat:::::::
@echo off
title 批量修改文件名
setlocal EnableDelayedExpansion
:: 啟用延遲變量擴(kuò)充

:GetPath
set zpath=%CD%
:: 對變量進(jìn)行初始化,防止用戶不輸入而直接跳過。其中%CD%表示當(dāng)前路徑
set /p zpath=請輸入目標(biāo)文件所在的路徑:
if %zpath:~0,1%%zpath:~-1%=="" set zpath=%zpath:~1,-1%
:: 檢查變量 zpath 的第一個和最后一個字符是否為 "" ,是的話就去掉
if not exist "%zpath%" goto :GetPath
:: 如果 zpath 值的路徑不存在,就得跳轉(zhuǎn)回去,要求重新輸入

:GetPrefix
set prefix=未命名
set /p prefix=請輸入文件名前綴(不能包含以下字符\/:*?">|):
for /f "delims=\/:*?>| tokens=2" %%i in ("z%prefix%z") do goto :GetPrefix
:: 這里對變量 perfix 進(jìn)行檢查,發(fā)現(xiàn)有非法符號便跳轉(zhuǎn)到 :GetPrefix
:: 事實(shí)上,這里并沒有對雙引號 " 進(jìn)行檢測,因?yàn)殡p引號無法在此被轉(zhuǎn)義為可用的分隔符
:: 即使是在這個程序里,不正確地使用雙引號也會引起程序異常而退出。
:: 因此,想把它做的非常人性化并不是一件容易的事情

:GetExt
set ext=.*
set /p ext=請輸入文件的擴(kuò)展名(不輸入則表示所有類型):
if not "%ext:~0,1%"=="." set ext=.%ext%
:: 檢查變量 ext 的第一個是否為句點(diǎn) . ,不是的話就加上
:: 建議這里對變量 ext 也檢查一下,發(fā)現(xiàn)有除*外的非法符號便跳轉(zhuǎn)到 :GetExt

set answer=N
echo.
echo 您試圖將 %zpath%\ 里的所有 %ext% 類型的文件以 %prefix% 為前綴名進(jìn)行批量改名,是否繼續(xù)?
set /p answer=繼續(xù)請輸入 Y ,輸入其它鍵放棄...
if "%answer%"=="Y" goto :ReadyToRename
if "%answer%"=="y" goto :ReadyToRename

echo 放棄文件改名,按任意鍵退出...  goto :PauseThenQuit

:ReadyToRename

set /a num=0
echo.

if "%ext%"==".*" (
  for %%i in ("%zpath%\*%ext%") do (
    set /a num+=1
    ren "%%i" "%prefix%!num!%%~xi" || echo 文件 %%i 改名失敗  set /a num-=1
  )
) else (
  for %%i in ("%zpath%\*%ext%") do (
    set /a num+=1
    ren "%%i" "%prefix%!num!%ext%" || echo 文件 %%i 改名失敗  set /a num-=1
  )
)

if %num%==0 echo %zpath%\ 里未發(fā)現(xiàn)任何文件。按任意鍵退出...  goto :PauseThenQuit

echo 文件改名完成,按任意鍵退出...

:PauseThenQuit
pause>nul
::::::::::::::::::::::::::::::::

您可能感興趣的文章:
  • 用批處理重命名文本文件名的代碼
  • 迅速刪除非法文件名的批處理代碼
  • 批量列出所有文件名的批處理
  • 修改文件名的批處理代碼
  • 批處理重命名特殊文件名的代碼

標(biāo)簽:白銀 蕪湖 樂山 臺州 江西 株洲 公主嶺 三門峽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《批處理實(shí)現(xiàn)批量修改文件名》,本文關(guān)鍵詞  批處理,實(shí)現(xiàn),批量,修改,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《批處理實(shí)現(xiàn)批量修改文件名》相關(guān)的同類信息!
  • 本頁收集關(guān)于批處理實(shí)現(xiàn)批量修改文件名的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    武山县| 古浪县| 河津市| 陆河县| 大庆市| 九江县| 涟源市| 肃宁县| 正镶白旗| 江永县| 乌兰浩特市| 溧阳市| 隆子县| 鹿邑县| 灌云县| 确山县| 扶沟县| 尚志市| 六枝特区| 临漳县| 乐业县| 西乌珠穆沁旗| 石首市| 临西县| 铜川市| 江津市| 广德县| 二连浩特市| 铜山县| 绥阳县| 西吉县| 沙雅县| 股票| 南丰县| 剑川县| 郧西县| 龙胜| 嘉兴市| 穆棱市| 乌兰察布市| 钦州市|