2012年11月16日金曜日

[Script][BAT]FOR文の処理

バッチファイルで FOR 文の処理の仕方です。

ヘルプを表示するにはコマンドプロンプトで下記のように入力します。

ヘルプを表示する
C:\> help if

スクリプトのサンプルです。

複数のパラメータを使って処理を繰り返す
for %%i in (1 3 5 7 9 11)
do (
ping 192.168.0.%%i
)
pause
※バッチファイル中では変数 %%i とすること。
※変数の指定はスペース区切り。

設定ファイルを読み込みながらパラメータを取得して処理を行う
:: カレントフォルダの"pass"ファイルを読み込みながらパラメータを取得してコマンドを実行する
::  eol ファイルの終端を示す記号(使わない場合には適当に指定)
::  tokens パラメータの数を指定。* は後ろ全部
::  delims デリミタ(カンマ区切り)
::  %%i i、j・・・と取得したパラメータは順に格納される。

FOR /F "eol=; tokens=1,2,3* delims=," %%i in (%~dp0pass%) do (
set server=%%i
set user=%%j
set pass=%%k
command %server% %user% %pass%
)

指定フォルダ内の全ファイルに対して処理を行う
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: dumpfile_cab.bat
::
:: D:\dump フォルダに格納されているダンプファイルの圧縮を行う。
:: 圧縮形式は cab 形式
::

set wkdate=%date:~-10%
set wkdate=%wkdate:/=%

D:
cd D:\tool\backupdump

echo cd D:\dump  1> cab_%wkdate%.bat
echo cd D:\dump  1> del_%wkdate%.bat

For %%i IN (D:\dump\*.dmp) DO (
echo makecab %%i %%~ni.cab>>cab_%wkdate%.bat
echo del %%i >> del_%wkdate%.bat
)

echo exit >> cab_%wkdate%.bat
echo exit >> del_%wkdate%.bat

start /wait cab_%wkdate%.bat
start /wait del_%wkdate%.bat

exit


Script のページに戻る

0 件のコメント:

コメントを投稿