cmd:FOR

1)バッチファイルにドラッグアンドドロップされたファイルの一覧を出力する。
@ECHO OFF
FOR %%i IN (%*) DO (
   ECHO %%i
)
[[PAUSE]]
※%%~i:ダブルクオテーションなし
 %%~dpi:ファイルのディレクトリのフルパス
 %%~nxi:拡張子付きのファイル名
 他は以下のコマンドで確認してください
FOR /?

2)ドロップされたテキストファイルの読み込み
※%1:cmdの第1引数(ファイルパス)
@ECHO OFF
FOR /F "delims=" %%i IN (%1) DO (
ECHO %%~i
)
PAUSE


3)バッチファイルの階層にあるすべてのファイルを".\_old\YYYYMMDDHHmmss"フォルダーにコピー
@ECHO OFF
SET targetName=%~dp0*.*
SET dir=%~dp0_old\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
ECHO COPY FROM:%targetName%
ECHO TO:%dir%
FOR /F "delims=" %%i IN ('DIR /A-D/B %~dp0') DO (
    IF %~nx0 NEQ %%i (
        IF NOT EXIST "%dir%" (
            MKDIR "%dir%"
        )
        ECHO %%i
        COPY "%%i" "%dir%"
    )
)
PAUSE

4)FOR文のループ変数(遅延環境変数)を変数に代入する
SETLOCAL enabledelayedexpansion ~ ENDLOCAL で囲んだ範囲で代入可能
値を参照するときは「%変数名%」ではなく「!変数名!」
@ECHO OFF
SETLOCAL enabledelayedexpansion
FOR /F "delims=" %%i IN ('DIR /A-D/B %~dp0') DO (
    SET val=%%i
    ECHO !val!
)
ENDLOCAL
PAUSE


最終更新:2014年07月30日 00:26
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。