特定のフォルダ「ABC」にいくつかの.pdfファイルと.texファイルがあります。
それらはすべてスキームによって名前が付けられています
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
[〜#〜] c [〜#〜]このスキームでは、章を表します[〜#〜]セクションの場合はs [〜#〜]、サブセクションの場合は[〜#〜] ss [〜#〜]。したがって、フォルダABCには、各章のフォルダもあり、単にC01、C02など。各チャプターフォルダーには、Picturesという名前のフォルダーが1つあります。
誰かがバッチスクリプトを書いて、すべての.texファイルと.pdfファイルをそれぞれのPictures-フォルダーに移動できるようにしてください。C04S01SS02_More_words.pdf
は次のようになります。 C04/Pictures
に移動し、C01S02_Word.pdf
をC01/Pictures
に移動しましたか?
注: もちろん私はすでにこれをグーグルで検索しました しかし、これまでのところ、多くのビットすべてを機能するスクリプトに変換することはできませんでした。 T&Eランはもうやりたくない。 :/
このバッチファイルを作成します。
_@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
_をファイル名に設定して、次のステートメントを1回実行します。call :subr "%%F"
_は、スクリプトの下3行を呼び出し、最初の引数(_%1
_)を_"%%F"
_(ファイル名、引用符で囲まれた)に設定します。exit /b
_は、コマンドプロンプトウィンドウを吹き飛ばさずにスクリプトを終了します。set filename=%1
_は、ファイル名引数をfilename
変数にコピーします。move
はファイルを移動します。%variable:~start,len%
_は、指定された_%variable%
_の部分文字列(最初の文字は#0)を取るため、_%filename:~1,3%
_は_%filename%
_の最初の3文字です。 (カウントは0から始まります。1を使用して_"
_をスキップします。)exit /b
_はサブルーチンから戻ります。