我在某個資料夾「ABC」中有幾個 .pdf 和 .tex 檔案。
它們都是由方案命名的
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
C在這個方案中代表章節,S對於部分和SS對於小節。所以在資料夾 ABC 中我也有每個章節的資料夾,簡單地命名為C01,二氧化碳等等。在每一章資料夾中,我都有一個名為圖片。
有人可以編寫一個批次腳本,以便我可以將所有 .tex 和 .pdf 檔案移動到各自的位置圖片- 資料夾,C04S01SS02_More_words.pdf
會被移至C04/Pictures
或C01S02_Word.pdf
移至C01/Pictures
等等嗎?
筆記:當然我已經用谷歌搜尋過了但到目前為止,我無法將所有這些位元轉換為工作腳本。我不想再進行 T&E 運行。 :/
答案1
建立這個批次檔:
@echo off
for %%F in (*.pdf *.tex) do call :subr "%%F"
exit /b
:subr
set filename=%1
move %1 %filename:~1,3%\Pictures
exit /b
筆記:
for %%F in (*.pdf *.tex) do …
對每個與*.pdf
或設定為檔案名稱相符的檔案名稱執行一次以下語句。*.tex
%%F
call :subr "%%F"
呼叫腳本的底部三行,第一個參數 (%1
) 設定為"%%F"
(檔案名,帶引號)。exit /b
退出腳本而不關閉命令提示字元視窗。set filename=%1
將檔案名稱參數複製到filename
變數中。move
移動文件。%variable:~start,len%
取 的指示子字串(第一個字元是 #0),因此是 的前三個字元。 (計數從 0 開始;我使用 1 來跳過。)%variable%
%filename:~1,3%
%filename%
"
exit /b
從子程序返回。