파일 이름에 포함된 문자열로 파일 분류 with 배치

【개요】



파일 이름에 있는 특정 문자열을 포함하는 파일을 각각 디렉토리에 복사합니다.

이번에는 파일명에 「1」과 「3」을 포함한 파일을 분류했습니다.

【프로그램】



파일 분류.bat
@echo off

REM 遅延変数用
setlocal enabledelayedexpansion

REM ファイル名に含まれる対象文字
set targetName1=1
set targetName2=3

REM フォルダが既に存在する場合は削除する
for %%i in (%targetName1% %targetName2%) do (
  if exist %%i (
    rd /s /q %%i
  )
)

REM カレントディレクトリの中の全てのファイルについて分類する
for /r ./ %%i in (*) do (
  set fileDir=%%~dpi
  set file=%%~nxi
  if not "!file:%targetName1%=!" == "!file!" (
    call :copyFile !fileDir! !file! %targetName1%
  ) else if not "!file:%targetName2%=!" == "!file!" (
    call :copyFile !fileDir! !file! %targetName2%
  )
)
exit /b

REM ファイルをコピーする関数
:copyFile
set fileDir=%1
set file=%2
set targetName=%3
REM フォルダが既にあるかどうか
if exist %targetName% (
  REM ファイルが既にあるかどうか
  if exist !targetName!/!file! (
    cp !fileDir!!file! !targetName!/copy_!file!
  ) else (
    cp !fileDir!!file! !targetName!/!file!
  )
) else (
  md !targetName!
  cp !fileDir!!file! !targetName!/!file!
)
exit /b

【실행 결과】



실행 전


실행 후


압축하려고 했지만, 배치에서는 zip 형식으로 압축할 수 없는 것 같다・・・.
어떻게 해주세요! Microsoft씨!

좋은 웹페이지 즐겨찾기