特定のフォルダ「ABC」に、複数の .pdf ファイルと .tex ファイルがあります。
これらはすべてスキームによって命名されている
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
Cこのスキームでは章を表します。スセクションとSSサブセクション用です。フォルダABCには、各章用のフォルダも作成します。C01、C02などなど。各章のフォルダには、ピクチャー。
誰か、.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
ファイル名に設定して次のステートメントを 1 回実行します。call :subr "%%F"
スクリプトの最後の 3 行を呼び出し、最初の引数 (%1
) を"%%F"
(引用符で囲まれたファイル名) に設定します。exit /b
コマンド プロンプト ウィンドウを消去せずにスクリプトを終了します。set filename=%1
ファイル名引数をfilename
変数にコピーします。move
ファイルを移動します。%variable:~start,len%
は の指定された部分文字列(最初の文字は #0)を取ります。したがって の最初の 3 文字も になります。(カウントは 0 から始まります。 をスキップするために 1 を使用しています。)%variable%
%filename:~1,3%
%filename%
"
exit /b
サブルーチンから戻ります。