hiko-blog

VBA業務改善

MENU

バッチでフォルダ内振り分け処理

@echo off
:: BatchGotAdmin
net session >nul 2>&1
if %errorLevel% == 0 (
    goto :gotAdmin
) else (
    goto :UACPrompt
)
:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
:gotAdmin
    if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs")
    pushd "%CD%"
    CD /D "%~dp0"

@echo off
setlocal enabledelayedexpansion

set "nameFile=name.txt"
set "sourceFolder=%~dp0"

cd %sourceFolder%

for /f "tokens=* delims=" %%a in (%nameFile%) do (
    set "folderName=%%a"
    md "!folderName!" 2>nul
    move "*!folderName!*.*" "!folderName!" 2>nul
)

echo Done.
pause