エクセル(Excel)&ワード(Word)質問掲示板

より見やすく使いやすいエクセル掲示板を目指し、新たにエクセルの質問掲示板を開設いたしました。 これに伴い、当サイトでは今後、新規投稿はできなくなります。(閲覧は当面可能です。)
今後は新掲示板をご利用いただきますよう宜しくお願い致します。今後ともよろしくお願い致します。
○新掲示板
エクセル(Excel)解決掲示板

エクセル・ワードの基本操作に関する質問や関数やマクロの使い方などエクセルとワードに関する質問掲示板。
Welcome Guest 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

バッチファイルP_BKUP ⇒ マクロ化

このトピックの投稿一覧へ

なし バッチファイルP_BKUP ⇒ マクロ化

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-1-17 23:02
ゲスト    投稿数: 0
REM **************************************************************************
REM ** バッチ名 : FOLDER_CHECK.bat
REM ** 作成日  : 2010.01.11
REM ** 作成者  : tester
REM ** 処理概要 : Pバックアップフォルダ検索処理
REM ** 変更日 変更内容               変更者
REM ** yyyymmdd ここに変更内容記述する。              xxxxxx
REM **************************************************************************

rem === 変数設定 ===============================================================

rem --- フラグ変数 ---
set OK=0
set NG=1

rem --- 初期化 ---
set FLAG_A=%OK%
set FLAG_B=%OK%
set FLAG_C=%OK%
set FLAG_D=%OK%

rem --- 時間変数 ---
set yyyy=%date:~-10,2%
set yy=%date:~-8,2%
set mm=%date:~-5,2%
set dd=%date:~-2,2%
set HH=%TIME:~0,2%
set MM2=%TIME:~3,2%
set SS=%TIME:~6,2%
set FILE_DATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%%TIME:~0,2%%TIME:~3,2%
set FILE_DATE=%FILE_DATE: =0%

rem --- フォルダ変数 ---
set LOG_DIR1=D:\test
set SERCH_DIR1=D:\test\CHECK_FOLDER
set SERCH_DIR2=tester\CHECK_FOLDER
set SERCH_DIR3=bkup_%yyyy%%yy%%mm%%dd%
set SERCH_DIR4=SAVE_FOLDER_%yyyy%%yy%%mm%%dd%
set VBS_DIR=D:\tester
rem --- ファイル変数 ---
set LOG_FILE1=CHECK_LOG.txt
set SERCH_FILE1=bkup_%yyyy%%yy%%mm%%dd%.LZH
set SERCH_FILE2=SAVE_FOLDER_%yyyy%%yy%%mm%%dd%.LZH
set BAT_FILE=FOLDER_CHECK.bat
set VBS_FILE=雛形フォルダマッチング.vbs

rem === 変数設定 ===============================================================

REM <開始処理>===============
set yyyy=%date:~-10,2%
set yy=%date:~-8,2%
set mm=%date:~-5,2%
set dd=%date:~-2,2%
set HH=%TIME:~0,2%
set MM2=%TIME:~3,2%
set SS=%TIME:~6,2%
echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理開始時間= %HH%:%MM2%:%SS%>> %LOG_DIR1%\%LOG_FILE1%
echo. >> %LOG_DIR1%\%LOG_FILE1%

REM <STEP1>
echo %SERCH_DIR3%存在チェック開始===============>> %LOG_DIR1%\%LOG_FILE1%

echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS%

IF EXIST %SERCH_DIR1%\%SERCH_DIR3% goto OK1

echo %SERCH_DIR3%フォルダが存在していません。>> %LOG_DIR1%\%LOG_FILE1%
set FLAG_A=%NG%
goto NEXT_SERCH_FOLDER1

:OK1
echo %SERCH_DIR3%フォルダが存在しています。>> %LOG_DIR1%\%LOG_FILE1%

:NEXT_SERCH_FOLDER1
echo %SERCH_DIR3%存在チェック終了===============>> %LOG_DIR1%\%LOG_FILE1%
echo. >> %LOG_DIR1%\%LOG_FILE1%

REM <STEP2>
echo %SERCH_DIR4%存在チェック開始===============>> %LOG_DIR1%\%LOG_FILE1%

echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS%

IF EXIST %SERCH_DIR1%\%SERCH_DIR4% goto OK2

echo %SERCH_DIR4%フォルダが存在していません。>> %LOG_DIR1%\%LOG_FILE1%
set FLAG_B=%NG%
goto NEXT_SERCH_FILE1

:OK2
echo %SERCH_DIR4%フォルダが存在しています。>> %LOG_DIR1%\%LOG_FILE1%

:NEXT_SERCH_FILE1
echo %SERCH_DIR4%存在チェック終了===============>> %LOG_DIR1%\%LOG_FILE1%
echo. >> %LOG_DIR1%\%LOG_FILE1%

REM <STEP3>
echo %SERCH_FILE1%存在チェック開始===============>> %LOG_DIR1%\%LOG_FILE1%

echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS%

IF EXIST %SERCH_DIR1%\%SERCH_FILE1% goto OK3

echo %SERCH_FILE1%ファイルが存在していません。>> %LOG_DIR1%\%LOG_FILE1%
set FLAG_C=%NG%
goto NEXT_SERCH_FILE2

:OK3
echo %SERCH_FILE1%ファイルが存在しています。>> %LOG_DIR1%\%LOG_FILE1%

:NEXT_SERCH_FILE2
echo %SERCH_FILE1%存在チェック終了===============>> %LOG_DIR1%\%LOG_FILE1%
echo. >> %LOG_DIR1%\%LOG_FILE1%

REM <STEP4>
echo %SERCH_FILE2%存在チェック開始===============>> %LOG_DIR1%\%LOG_FILE1%

echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS%

IF EXIST %SERCH_DIR1%\%SERCH_FILE1% goto OK4

echo %SERCH_FILE2%ファイルが存在していません。>> %LOG_DIR1%\%LOG_FILE1%
set FLAG_D=%NG%
goto HANTEI

:OK4
echo %SERCH_FILE2%ファイルが存在しています。>> %LOG_DIR1%\%LOG_FILE1%

REM <判定処理>===============

:HANTEI
echo %SERCH_FILE2%存在チェック終了===============>> %LOG_DIR1%\%LOG_FILE1%

echo. >> %LOG_DIR1%\%LOG_FILE1%

echo 存在判定出力処理開始===============>> %LOG_DIR1%\%LOG_FILE1%

echo. >> %LOG_DIR1%\%LOG_FILE1%

IF "%FLAG_A%-%FLAG_B%-%FLAG_C%-%FLAG_D%" == "0-0-0-0" (
echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS% 正常終了 >> %LOG_DIR1%\%LOG_FILE1%
) ELSE (
echo %yyyy%%yy%/%mm%/%dd% %HH%:%MM2%:%SS% 異常終了 >> %LOG_DIR1%\%LOG_FILE1%
)

echo. >> %LOG_DIR1%\%LOG_FILE1%

echo 存在判定出力処理終了===============>> %LOG_DIR1%\%LOG_FILE1%

REM <終了処理>===============
echo. >> %LOG_DIR1%\%LOG_FILE1%
set yyyy=%date:~-10,2%
set yy=%date:~-8,2%
set mm=%date:~-5,2%
set dd=%date:~-2,2%
set HH=%TIME:~0,2%
set MM2=%TIME:~3,2%
set SS=%TIME:~6,2%
echo %BAT_FILE% 処理日 = %yyyy%%yy%/%mm%/%dd% 処理終了時間= %HH%:%MM2%:%SS%>> %LOG_DIR1%\%LOG_FILE1%
echo. >> %LOG_DIR1%\%LOG_FILE1%

wscript %VBS_DIR%\%VBS_FILE%

'**************************************************************************
'** VBS名 : 雛形フォルダマッチング.vbs
'** 作成日  : 2010.01.10
'** 作成者  : tester
'** 処理概要 : 一住変データ件数取得処理
'** 変更日 変更内容               変更者
'** yyyymmdd ここに変更内容記述する。              xxxxxx
'**************************************************************************

'********変数強制宣言********
Option Explicit

'********オブジェクト変数定義********
Dim FSO , LOG , Fs , Fld1 , Flds1 , Fld2 , Flds2 , Fld3 , Flds3 , Fld4 , Flds4 , Fd1 , Fd2 , Fd3 , Fd4
Dim objFSO , objFile

'********配列宣言************
Dim fldname1(20) , fldname2(20) , fldname3(20) , fldname4(20)

'********カウント変数宣言************
Dim i , cntA , cntB , cntC , cntD , cnt_recv_all , cnt_send_all

'********フォルダ変数宣言************
Dim HINAGATA_RECV , HINAGATA_SEND , DESTINATION_RECV , DESTINATION_SEND , LOG_FOLDER

'********ファイル変数宣言************
Dim LOG_FILE1 , LOG_FILENAME

'********時間変数宣言********
Dim YYYY , MM1 , DD , HHMMSS , HH , MM2 , SS

'********初期設定********

HINAGATA_RECV = "D:\test\vbs_FOLDERCHECK_in"
HINAGATA_SEND = "D:\test\vbs_FOLDERCHECK_in"
DESTINATION_RECV = "D:\test\vbs_FOLDERCHECK_out"
DESTINATION_SEND = "D:\test\vbs_FOLDERCHECK_out"
LOG_FOLDER = "D:\開発\"
LOG_FILE1 = "CHECK_LOG.txt"
LOG_FILENAME = LOG_FOLDER & "\" & LOG_FILE1

'********処理開始時間********
YYYY = Year(Date)
MM1 = MONTH(Date)
DD = DAY(Date)
HH = Right("0" & Hour(Time), 2)
MM2 = Right("0" & Minute(Time), 2)
SS = Right("0" & Second(Time), 2)

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set LOG = FSO.OpenTextFile(LOG_FILENAME, 8)
LOG.WriteLine("処理日 = " & YYYY & "/" & MM1 & "/" & DD & " 処理開始時間= " & HH & ":" & MM2 & ":" & SS & "")

'Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'Set objFile = objFSO.OpenTextFile(LOG_FOLDER & "\" & LOG_FILE1, 8, True)

'********雛形RECVフォルダ数取得処理********
i = 0
Set Fs=WScript.CreateObject("Scripting.FileSystemObject")
Set Fld1=fs.GetFolder(HINAGATA_RECV)
Set Flds1=Fld1.subfolders

For Each Fd1 in Flds1
i=i+1
cntA=i
fldname1(i) = Fd1.name
next

'********雛形SENDフォルダ数取得処理********
i = 0
Set Fs=WScript.CreateObject("Scripting.FileSystemObject")
Set Fld2=fs.GetFolder(HINAGATA_SEND)
Set Flds2=Fld2.subfolders

For Each Fd2 in Flds2
i=i+1
cntB=i
fldname2(i) = Fd2.name
next

'********RECVフォルダ数取得処理********
i = 0
Set Fs=WScript.CreateObject("Scripting.FileSystemObject")
Set Fld3=fs.GetFolder(DESTINATION_RECV)
Set Flds3=Fld3.subfolders

For Each Fd3 in Flds3
i=i+1
cntC=i
fldname3(i) = Fd3.name
next

'********SENDフォルダ数取得処理********
i = 0
Set Fs=WScript.CreateObject("Scripting.FileSystemObject")
Set Fld4=fs.GetFolder(DESTINATION_SEND)
Set Flds4=Fld4.subfolders

For Each Fd4 in Flds4
i=i+1
cntD=i
fldname4(i) = Fd4.name
next

'********フォルダ数マッチング処理********
i = 0

LOG.WriteBlankLines(5)

LOG.WriteLine("★★★**************  処理日 = " & YYYY & "/" & MM1 & "/" & DD & " 雛形マッチング処理開始時間= " & HH & ":" & MM2 & ":" & SS & "  ***************★★★")

LOG.WriteBlankLines(2)

LOG.WriteLine("★★★**************    RECVフォルダ数マッチング処理開始     ***************★★★")

LOG.WriteBlankLines(1)

With CreateObject("Scripting.FileSystemObject")

For i = 1 to cntA

If .FolderExists(Fld3 & "\" & fldname1(i)) Then
LOG.WriteLine("                 " & fldname1(i) & "フォルダは存在します。")
Else
LOG.WriteLine("                 " & fldname1(i) & "フォルダは存在しません。")
End if
Next

End With

LOG.WriteBlankLines(1)

LOG.WriteLine("★★★**************    RECVフォルダ数マッチング処理終了     ***************★★★")

LOG.WriteBlankLines(2)

LOG.WriteLine("★★★**************    SENDフォルダ数マッチング処理開始     ***************★★★")

LOG.WriteBlankLines(1)

With CreateObject("Scripting.FileSystemObject")

For i = 1 to cntB

If .FolderExists(Fld4 & "\" & fldname2(i)) Then
LOG.WriteLine("                 " & fldname2(i) & "フォルダは存在します。")
Else
LOG.WriteLine("                 " & fldname2(i) & "フォルダは存在しません。")
End if
Next

End With

LOG.WriteBlankLines(1)

LOG.WriteLine("★★★**************    SENDフォルダ数マッチング処理終了     ***************★★★")

LOG.WriteBlankLines(2)

LOG.WriteLine("★★★**************     RECVマッチング処理結果表示開始     ***************★★★")

LOG.WriteBlankLines(1)

cnt_recv_all = cntA-cntC

If cntA = cntC then
LOG.WriteLine("            " & cntA & "個のフォルダを正常にコピーしています。")
Else
LOG.WriteLine("        " & cntC & "個のフォルダしか存在していなく、" & cnt_recv_all & "個フォルダが足りません。")
LOG.WriteLine("                ログを参考に調査願います!")
End If

LOG.WriteBlankLines(1)

LOG.WriteLine("★★★**************     RECVマッチング処理結果表示終了     ***************★★★")

LOG.WriteBlankLines(2)

LOG.WriteLine("★★★**************     SENDマッチング処理結果表示開始     ***************★★★")

LOG.WriteBlankLines(1)

cnt_send_all = cntB-cntD

If cntB = cntD then
LOG.WriteLine("            " & cntB & "個のフォルダを正常にコピーしています。")
Else
LOG.WriteLine("        " & cntD & "個のフォルダしか存在していなく、" & cnt_send_all & "個フォルダが足りません。")
LOG.WriteLine("                ログを参考に調査願います!")
End If

LOG.WriteBlankLines(1)

LOG.WriteLine("★★★**************    SENDマッチング処理結果表示終了     ***************★★★")

LOG.WriteBlankLines(2)

'********処理終了時間********
YYYY = Year(Date)
MM1 = MONTH(Date)
DD = DAY(Date)
HH = Right("0" & Hour(Time), 2)
MM2 = Right("0" & Minute(Time), 2)
SS = Right("0" & Second(Time), 2)

LOG.WriteBlankLines(1)
LOG.WriteLine("★★★**************  処理日 = " & YYYY & "/" & MM1 & "/" & DD & " 雛形マッチング処理終了時間= " & HH & ":" & MM2 & ":" & SS & "  ***************★★★")
LOG.WriteBlankLines(3)
LOG.Close

Set FSO = Nothing
投票数:92 平均点:4.67
返信する

この投稿に返信する

題名
ゲスト名   :
投稿本文

投稿ツリー

  条件検索へ


スポンサーリンク
スポンサーリンク
エクセル・ワード質問/回答集 - クイズ・問題QUUS! - 無料英語学習 - 投資家・トレーダー掲示版
為替(FX)テクニカル分析入門 - エクセル(EXCEL)学習・入門 - Word(ワード)の使い方/活用・入門
Copy right(c) 2006-2010 エクセル&ワード質問掲示板 all right reserved