1. 批量去除當前文件夾下文件名前面的數字
1、在c盤建立一個文件夾,將下載的圖片放置於該文件夾中。
2、滑鼠左鍵點擊,開始-》運行-》在對話框中輸入字母「cmd」,進入dos模式
3、在dos模式輸入命令行「cd c:\pic」然後回車,再輸入命令行「dir /b>rename.xls",可將文件夾中的文件名在rename.xls文件中列出。
4、隨後用xls打開c:\pic文件夾中的rename.xls,你會發現文件名以全部羅列在A列中(你也可以用滑鼠來調整文件名的順序),你可以在B1列中輸入1.jpg作為第一個文件文件名。
5、滑鼠選中B1單元格,並在B1列的右下方,使滑鼠游標變為+號時,拖動使所有jpg文件的右側B列中都有文件名。再將A8單元格中沒有用的文件名刪除。
6、滑鼠選中C1單元格,並在編輯框中輸入公式="ren "&A1&" "&B1。
7、繼續用滑鼠拖動C1單元格右下方的句柄,使剩餘的C2-C7單元格填充。
8、然後,滑鼠選中C列,滑鼠右鍵復制。
9、在記事本中,粘貼剛才的命令行。
10、滑鼠點擊菜單「文件」——「另存為」,輸入文件名ren.bat,要注意下圖所示紅圈中的路徑及擴展名選項。
11、打開c盤pic文件夾,滑鼠雙擊ren.bat這個批處理文件,即可將該文件夾下的jpg圖片,按照剛才rename.xls中的順序和文件名批量修改文件名。
2. Excel用公式函數提取文件名
1、Mid函數MID(text, start_num, num_chars) text 文本or 文本位置 start_num 啟始數字,num_chars 結束數字
使用格式:MID(text,start_num,num_chars)
參數說明:text代表一個文本字元串;start_num表示指定的起始位置;num_chars表示要截取的數目。
應用舉例:假定A47單元格中保存了「我喜歡天極網」的字元串,我們在C47單元格中輸入公式:=MID(A47,4,3),確認後即顯示出「天極網」的字元。
SEARCH函數
功能:用來返回指定的字元串在原始字元串中首次出現的位置 ,從左到右查找,忽略英文字母的大小寫。
使用格式:SEARCH(find_text,within_text,start_num)
find_text:要查找的文本字元串
within_text:要在哪一個字元串查找
start_num:從within_text的第幾個字元開始查找。
注意:在find_text中,可以使用通配符,例如:問號「?」和星號「*」。其中問號「?」代表任何一個字元,而星號「*」可代表任何字元串。如果要查找的字元串就是問號或星號,則必須在這兩個符號前加上「~」符號。
2、返回當前工作表的名稱:=MID(CELL("filename"),SEARCH("]",CELL("filename"))+1,LEN(CELL("filename"))-SEARCH("]",CELL("filename")))
C:\Users\DA\Desktop\[B8035M-A0.00.001.xlsx]Sheet1
3、僅插入當前文件名:=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
僅插入當前工作表明:
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
3. 如何批量提取圖片文件名後加序號
其實這個簡單,不用編程,
就是先提取文件名,然後灌入電子表,然後加編號
,然後做成每行是,命令,原名,新名的格式,然後輸出,做在BAT文件,執行一下就好
4. 如何用提取文本文件內第一行作為該文件文件名【批處理】
答復已補充:
你如果確認第一行就是要的標題而不是空行或其它的話,那麼應該就樣:
@echo off
for %%a in ("*.txt") do (call:ChangName "%%a")
goto :eof
:ChangName
for /f "usebackq delims=" %%h in ("%1") do (ren "%1" "%%h.txt"&goto :eof)
goto:eof
問題有2:1.為什麼你要用skip=2跳過頭2行呢?
2.for是一個循環,你不停止它,它就會一直的運行下去,雖然理論上不會再對ren產生影響了,但是很耗資源的
特別要注意的是你用了usebackq參數,那麼%1就得加上""了,這樣FOR才認為它是一個文件,後面的也加上,以免路徑有空格時發生錯誤。
如果你不確定第一行是不是空行的話可以參照一樓的兄弟判斷的語句(稍做更改):
for ......(
setlocal enabledelayedexpansion
set "var=%%i"
if defined var (ren "%1" "%%i.txt" & goto :eof)
set var=)
發現問題了,樓主說在中途停止反而正確的多,問題在於第一句
for %%a in (*.txt) do (call:ChangName "%%~a")
當你更改文件名時,for會對更改後的文件再次遍歷,所以先導出文件名再做更改的動作吧,第一段更改如下:
@echo off
dir /b *.txt>>%temp%\dirlist.txt
for /f "usebackq delims=" %%a in ("%temp%\dirlist.txt") do (call:ChangName "%%a")
goto :eof