[前の記事]« サーバ上のバッチファイルをクライアントから実行する方法
[次の記事]set /pでキー入力された値の判定方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
▲カテゴリー「FOR .. IN ( ) DO..」索引へ

forでの複数回コピーがすべて正常終了した場合だけメッセージを出すには

1139.
FOR文について
2006年05月26日(金) 12時01分
ren
●DOS/Windowsのバージョン↓

WindowsXP

FILE.txtに記述されたファイル名を順次取得し、
コピーするというバッチファイルを作ろうとしています。

FOR文で1行ずつ実行しているのですが、
今の自分のやり方では、正常終了のecho文が
FILE.txtの中身分だけ出力されてしまいます。

FOR文で全てのファイルのコピーが正常に終了した時のみ、
正常終了のecho文を出したいのですが、
どのように記述すればいいのでしょうか?

よろしければご返答の程、お願いします。

-------------------------------------------

SET TMP_FILE=FILE.txt

  FOR /F %%A IN (%TMP_FILE%) DO (CALL :LB1 %%A)
    GOTO NORMAL
REM #
:LB1
REM #
    SET FILE_NAME=%1
REM # 入力ファイル
    SET C_IN_DAT=C:\%FILE_NAME%
REM # 出力ファイル
    SET C_OUT_DAT=D:\%FILE_NAME%
REM # ファイル配置
    COPY %C_IN_DAT% %C_OUT_DAT% 
REM #
    SET RETURN_CD=%ERRORLEVEL%
REM #
    IF  NOT %RETURN_CD%==0 (
REM #
      ECHO 異常終了
    )

:NORMAL
REM #
    ECHO 正常終了

-------------------------------------------
1140.
Re:FOR文について
2006年05月26日(金) 13時48分
otn
>FOR文で1行ずつ実行しているのですが、
>今の自分のやり方では、正常終了のecho文が
>FILE.txtの中身分だけ出力されてしまいます。
>
>FOR文で全てのファイルのコピーが正常に終了した時のみ、
>正常終了のecho文を出したいのですが、
>どのように記述すればいいのでしょうか?

-------------------------------------------

SET TMP_FILE=FILE.txt
SET ERR=0
  FOR /F %%A IN (%TMP_FILE%) DO (CALL :LB1 %%A)
  IF %ERR%==0 GOTO NORMAL
  ECHO 異常終了
  GOTO NEXT
REM #
:LB1
REM #
    SET FILE_NAME=%1
REM # 入力ファイル
    SET C_IN_DAT=C:\%FILE_NAME%
REM # 出力ファイル
    SET C_OUT_DAT=D:\%FILE_NAME%
REM # ファイル配置
    COPY %C_IN_DAT% %C_OUT_DAT% 
REM #
    IF NOT %ERRORLEVEL%==0 SET ERR=1
    GOTO :EOF  

:NORMAL
REM #
    ECHO 正常終了
:NEXT
REM 次の処理
-------------------------------------------


1142.
Re:FOR文について
2006年05月26日(金) 15時45分
ren
otn さん、ありがとうございました。

ご指摘の通り組み直した所、正常に動きました。
大変参考になりました。

 
 


カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
カテゴリー「FOR .. IN ( ) DO..」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年05月26日 16:15に投稿されたエントリーのページです。

ひとつ前の投稿は「サーバ上のバッチファイルをクライアントから実行する方法」です。

次の投稿は「set /pでキー入力された値の判定方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート