
特定のフォルダーに特定の形式の PDF ファイルが複数あり、それらの特定のファイルについては、bat ファイルを使用して中央の数字を削除し、新しい名前で宛先フォルダーに移動する必要があります。
詳細
ソースフォルダー:
C:/roger/brawn
行き先:
D:/var/lag
ファイル形式:
eAWI_12345678_89101112_01Mar2018.pdf
望ましい結果
トリミングする必要がある89101112
元のソースファイル名から次の結果を取得します。eAWI_12345678_01Mar2018.pdf
このファイル名の番号形式は、アプリケーション内の変数を使用して動的に生成されます。
答え1
あなたは/F の場合ループして、ファイル名のアンダースコア文字を区切り文字として設定します。トークンを使用して1,2,3,*
後で変数を連結し、ソースファイル名と宛先ファイル名を構築して解析し、後でコピー目的の結果を得るためのコマンド。
バッチスクリプト
@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT
注記:のエコーコマンドパイプF
はコピーF
コマンドは、ループ内の3番目のトークンを解析して新しい宛先ファイル名を明示的に指定し、目的のファイル名を取得するのに役立つため、暗黙的に「ファイル」を選択します。コピーコマンドの後に条件付き実行 (&&)成功したことを確認し、元のソース ファイルを削除する前に新しい宛先ファイルの存在を確認します。