Option Explicit
Dim IFILE
Dim OFILE
'IFILE = "P_icacls.cmd_out.txt"
' 入力チェック
If WScript.Arguments.Count < 1 Then
WScript.Echo " PARAM ERROR Arguments.Count=" & WScript.Arguments.Count
wscript.Quit(4)
End If
IFILE = WScript.Arguments(0)
OFILE = IFILE & "_out.txt"
Call ACLS(IFILE,OFILE)
wscript.Quit(0)
'************************************************
' ACL結果の整形
'************************************************
Sub ACLS(IFILE,OFILE)
Dim objFSO
Dim objIFILE
Dim objOFILE
Dim iCnt
Dim OCnt
Dim sRec
Dim sPath
Dim sUser
Dim iPos
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 指定ファイルをOPEN
Set objIFILE = objFSO.OpenTextFile(IFILE, 1)
Set objOFILE = objFSO.CreateTextFile(OFILE)
sRec = ""
iCnt = 0
OCnt = 0
iPos = 0
Do Until objIFILE.AtEndOfStream = True
sRec = objIFILE.ReadLine
iCnt = iCnt + 1
If sRec > "" Then
'空白行でない場合
If Mid(sRec,1,1) <> " " Then
'1桁目が空白以外の場合
iPos = InstrRev(sRec," ")
'パスとユーザに分ける
sPath = trim(Mid(sRec,1,ipos - 1))
sUser = trim(Replace(sRec, sPath, ""))
sRec = sPath & vbtab & sUser
Else
'1桁目が空白の場合
sRec = sPath & vbtab & trim(sRec)
End If
objOFILE.WriteLine sRec
OCnt = OCnt + 1
End If
Loop
WScript.Echo IFILE & " -> " & OFILE
WScript.Echo now & " iCnt=" & iCnt & " OCnt=" & OCnt
objOFILE.Close
objIFILE.Close
Set objOFILE = Nothing
Set objIFILE = Nothing
Set objFSO = Nothing
End Sub
2015年8月31日月曜日
P_icacls.cmd
@echo off
ECHO ************************************
ECHO "P_icacls.cmd admtools /T"
ECHO ************************************
ECHO %date% %time% Start %0
@icacls.exe %* | find /v "" > %0_out.txt
ECHO %date% %time% End
ECHO %date% %time% Start ACL.vbs
cscript //nologo ACL.vbs %0_out.txt
ECHO %date% %time% End
pause
exit /b 0
ECHO ************************************
ECHO "P_icacls.cmd admtools /T"
ECHO ************************************
ECHO %date% %time% Start %0
@icacls.exe %* | find /v "" > %0_out.txt
ECHO %date% %time% End
ECHO %date% %time% Start ACL.vbs
cscript //nologo ACL.vbs %0_out.txt
ECHO %date% %time% End
pause
exit /b 0
2015年8月26日水曜日
url
https://support.microsoft.com/ja-jp/kb/195144
https://support.microsoft.com/ja-jp/kb/210638
https://support.microsoft.com/ja-jp/kb/250267
https://support.microsoft.com/ja-jp/kb/3037941
https://support.microsoft.com/ja-jp/kb/121007
http://www.cat-ears.net/?p=7829
https://social.technet.microsoft.com/Forums/windowsserver/ja-JP/1793d8ad-422e-429f-8bce-8a64e8b315ee/dos83robocopy?forum=windowsserver2008ja
http://shiroyuki-mot-says.blogspot.jp/2014/04/pc-short-naming-robocopy.html
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
○
http://d.hatena.ne.jp/ming_mina/20110116/1295196049
○
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
https://support.microsoft.com/ja-jp/kb/210638
https://support.microsoft.com/ja-jp/kb/250267
https://support.microsoft.com/ja-jp/kb/3037941
https://support.microsoft.com/ja-jp/kb/121007
http://www.cat-ears.net/?p=7829
https://social.technet.microsoft.com/Forums/windowsserver/ja-JP/1793d8ad-422e-429f-8bce-8a64e8b315ee/dos83robocopy?forum=windowsserver2008ja
http://shiroyuki-mot-says.blogspot.jp/2014/04/pc-short-naming-robocopy.html
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
○
http://d.hatena.ne.jp/ming_mina/20110116/1295196049
○
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
2015年8月16日日曜日
CopyFillst
g@echo off
setlocal
ECHO ** START ** %1
SET IN_FILE_NAME=%1
SET OUT_FILE_NAME=%IN_FILE_NAME%_out.txt
if exist %OUT_FILE_NAME% ( del %OUT_FILE_NAME% )
for /f "delims=" %%a in (%1) do (
rem echo %%a
call :Sub1 %%a %OUT_FILE_NAME%
)
pause
endlocal
exit /b 0
:Sub1
ECHO Sub1 Start %date% %time% %1 %2
rem file split -> dir & file
echo %~p1
echo %~n1 %~nx1
SET SRC=d:\in\%~p1
SET DST=d:\out\%~p1
SET LOG=/LOG+:%2
SET OPT=/MIR /NC /NP /TEE /FP /COPY:DATSO /BYTES /L
ECHO robocopy %SRC% %DST% %~nx1 %OPT% %LOG%
rem robocopy %SRC% %DST% %~nx1 %OPT% %LOG%
pause
exit /b
AAAA\BB\CCCC1\a1.txt
AAAA\BB\CCCC2\a2.txt
AAAA\BB\CCCC3\a3.txt
AAAA\BB\CCCC4\a4.txt
AAAA\BB\CCCC5\a5.txt
setlocal
ECHO ** START ** %1
SET IN_FILE_NAME=%1
SET OUT_FILE_NAME=%IN_FILE_NAME%_out.txt
if exist %OUT_FILE_NAME% ( del %OUT_FILE_NAME% )
for /f "delims=" %%a in (%1) do (
rem echo %%a
call :Sub1 %%a %OUT_FILE_NAME%
)
pause
endlocal
exit /b 0
:Sub1
ECHO Sub1 Start %date% %time% %1 %2
rem file split -> dir & file
echo %~p1
echo %~n1 %~nx1
SET SRC=d:\in\%~p1
SET DST=d:\out\%~p1
SET LOG=/LOG+:%2
SET OPT=/MIR /NC /NP /TEE /FP /COPY:DATSO /BYTES /L
ECHO robocopy %SRC% %DST% %~nx1 %OPT% %LOG%
rem robocopy %SRC% %DST% %~nx1 %OPT% %LOG%
pause
exit /b
AAAA\BB\CCCC1\a1.txt
AAAA\BB\CCCC2\a2.txt
AAAA\BB\CCCC3\a3.txt
AAAA\BB\CCCC4\a4.txt
AAAA\BB\CCCC5\a5.txt
CopyDirLst
@echo off
setlocal
ECHO ** START ** %1
SET IN_FILE_NAME=%1
SET OUT_FILE_NAME=%IN_FILE_NAME%_out.txt
if exist %OUT_FILE_NAME% ( del %OUT_FILE_NAME% )
for /f "delims=" %%a in (%1) do (
rem echo %%a
call :Sub1 %%a %OUT_FILE_NAME%
)
pause
endlocal
exit /b 0
:Sub1
ECHO Sub1 Start %date% %time% %1 %2
SET SRC=d:\in\%1
SET DST=d:\out\%1
SET LOG=/LOG+:%2
SET OPT=/MIR /NC /NP /TEE /FP /COPY:DATSO /BYTES /L
ECHO robocopy %SRC% %DST% %OPT% %LOG%
robocopy %SRC% %DST% %OPT% %LOG%
exit /b
setlocal
ECHO ** START ** %1
SET IN_FILE_NAME=%1
SET OUT_FILE_NAME=%IN_FILE_NAME%_out.txt
if exist %OUT_FILE_NAME% ( del %OUT_FILE_NAME% )
for /f "delims=" %%a in (%1) do (
rem echo %%a
call :Sub1 %%a %OUT_FILE_NAME%
)
pause
endlocal
exit /b 0
:Sub1
ECHO Sub1 Start %date% %time% %1 %2
SET SRC=d:\in\%1
SET DST=d:\out\%1
SET LOG=/LOG+:%2
SET OPT=/MIR /NC /NP /TEE /FP /COPY:DATSO /BYTES /L
ECHO robocopy %SRC% %DST% %OPT% %LOG%
robocopy %SRC% %DST% %OPT% %LOG%
exit /b
2015年8月10日月曜日
88DIFFS
Option Explicit
Dim objFSO 'As Object ' FileSystemObject
Dim INFILE1 'As String
Dim INFILE2 'As String
Dim iInCnt1
Dim iInCnt2
Dim OUTFILE1 'As String
Dim OUTFILE2 'As String
Dim sStartTime 'As Variant
Dim sEndTime 'As Variant
'***********************************************
'二つのファイルの差異部分を、それぞれ出力()
Set objFSO = CreateObject("Scripting.FileSystemObject")
'比較対象のファイル名を取得
'INFILE1 = "In1.txt"
'INFILE2 = "In2.txt"
INFILE1 = "testlogs.txt"
INFILE2 = "testlog2s.txt"
OUTFILE1 = "Ou1.txt"
OUTFILE2 = "Ou2.txt"
wscript.echo now
Call DIFFS
wscript.echo now
wscript.Echo "差分出力を終わりました。" & vbNewLine _
& "処理時間は、" _
& FormatDateTime(sEndTime - sStartTime) & " でした。"
Set objFSO = Nothing
wscript.Quit
'************************************************
'************************************************
Sub DIFFS
'Private Sub DIFFS()
'************************************************
Dim iOutCnt1
Dim iOutCnt2
Dim objOutFile1 'As Object ' TextStream
Dim objOutFile2 'As Object ' TextStream
Dim iPCnt1
Dim iPCnt2
Dim objInFile1 'As Object ' TextStream
Dim objInFile2 'As Object ' TextStream
Dim sINPUTDATA1
Dim sINPUTDATA2
Dim sINPUTDATA1BEFOR
Dim sINPUTDATA2BEFOR
Dim INPUT1STATUS
Dim INPUT2STATUS
Dim sScriptFullName
sScriptFullName = Wscript.ScriptFullName
WScript.Echo sScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 指定ファイルをOPEN(入力モード)
Set objInFile1 = objFSO.OpenTextFile(INFILE1, 1)
Set objInFile2 = objFSO.OpenTextFile(INFILE2, 1)
iPCnt1 = 0
iPCnt2 = 0
' 指定ファイルをOPEN(出力モード)
Set objOutFile1 = objFSO.CreateTextFile(OUTFILE1)
Set objOutFile2 = objFSO.CreateTextFile(OUTFILE2)
iOutCnt1 = 0
iOutCnt2 = 0
sINPUTDATA1 = ""
sINPUTDATA2 = ""
wscript.echo "+++++++++++++++++"
Do
If sINPUTDATA1 = sINPUTDATA2 Then
If objInFile1.AtEndOfStream _
And objInFile2.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
INPUT2STATUS = "入力2終了"
Exit Do
ElseIf objInFile2.AtEndOfStream Then
INPUT2STATUS = "入力2終了"
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
ElseIf objInFile1.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
Else
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
' If 正規表現オブジェクト.Test(sINPUTDATA1) = True _
' And objInFile1.AtEndOfStream = False Then
' objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
' iOutCnt1 = iOutCnt1 + 1
' sINPUTDATA1 = objInFile1.ReadLine
' iPCnt1 = iPCnt1 + 1
' End If
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
ElseIf sINPUTDATA1 < sINPUTDATA2 Then ' wscript.echo "入力配列1(処理行) < 入力配列2(検索行)" & vbNewLine _ ' & "処理行:" & 処理行 & " 検索行:" & 検索行 & vbNewLine _ ' & "処理行:" & 入力配列1(処理行) & vbNewLine _ ' & "検索行:" & 入力配列2(検索行) If objInFile1.AtEndOfStream Then INPUT1STATUS = "入力1終了" If objInFile2.AtEndOfStream Then INPUT2STATUS = "入力2終了" wscript.echo sINPUTDATA2 & " 1@@20150809@@@@@@@@" objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き iOutCnt2 = iOutCnt2 + 1 objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き iOutCnt1 = iOutCnt1 + 1 wscript.echo sINPUTDATA2 & " 2@@20150809@@@@@@@@" Exit Do Else objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き iOutCnt2 = iOutCnt2 + 1 sINPUTDATA2BEFOR = sINPUTDATA2 sINPUTDATA2 = objInFile2.ReadLine iPCnt2 = iPCnt2 + 1 If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
End If
ElseIf sINPUTDATA1 > sINPUTDATA2 Then
' wscript.echo "入力配列1(処理行) > 入力配列2(入力行数2)" & vbNewLine _
' & "処理行:" & 処理行 & " 検索行:" & 検索行 & vbNewLine _
' & "処理行:" & 入力配列1(処理行) & vbNewLine _
' & "検索行:" & 入力配列2(検索行)
If objInFile2.AtEndOfStream Then
INPUT2STATUS = "入力2終了"
If objInFile1.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
wscript.echo sINPUTDATA1 & " 1@@20150809+++++++"
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
wscript.echo sINPUTDATA1 & " 2@@20150809++++++++"
Exit Do
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
wscript.echo sINPUTDATA1 & " +++++++"
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
End If
Else
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
End If
'wscript.echo sINPUTDATA1
Loop '入力行を次々続ける
If sINPUTDATA1BEFOR > sINPUTDATA1 Or sINPUTDATA2BEFOR > sINPUTDATA2 Then
wscript.echo iPCnt1 & " か、" & iPCnt2 & " で、ソートエラーで終了しました。" & vbNewLine _
& "INPUT1STATUS=" & INPUT1STATUS & " INPUT2STATUS=" & INPUT2STATUS
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
End If
wscript.echo OUTFILE1 & " として、" & iOutCnt1 & " 行を出力しました。" & vbNewLine _
& OUTFILE2 & " として、" & iOutCnt2 & " 行を出力しました。"
' 指定ファイルをClose(出力モード)
objOutFile1.Close
objOutFile2.Close
Set objOutFile1 = Nothing
Set objOutFile2 = Nothing
' 指定ファイルをClose(入力モード)
objInFile1.Close
objInFile2.Close
Set objInFile1 = Nothing
Set objInFile2 = Nothing
End Sub
Dim objFSO 'As Object ' FileSystemObject
Dim INFILE1 'As String
Dim INFILE2 'As String
Dim iInCnt1
Dim iInCnt2
Dim OUTFILE1 'As String
Dim OUTFILE2 'As String
Dim sStartTime 'As Variant
Dim sEndTime 'As Variant
'***********************************************
'二つのファイルの差異部分を、それぞれ出力()
Set objFSO = CreateObject("Scripting.FileSystemObject")
'比較対象のファイル名を取得
'INFILE1 = "In1.txt"
'INFILE2 = "In2.txt"
INFILE1 = "testlogs.txt"
INFILE2 = "testlog2s.txt"
OUTFILE1 = "Ou1.txt"
OUTFILE2 = "Ou2.txt"
wscript.echo now
Call DIFFS
wscript.echo now
wscript.Echo "差分出力を終わりました。" & vbNewLine _
& "処理時間は、" _
& FormatDateTime(sEndTime - sStartTime) & " でした。"
Set objFSO = Nothing
wscript.Quit
'************************************************
'************************************************
Sub DIFFS
'Private Sub DIFFS()
'************************************************
Dim iOutCnt1
Dim iOutCnt2
Dim objOutFile1 'As Object ' TextStream
Dim objOutFile2 'As Object ' TextStream
Dim iPCnt1
Dim iPCnt2
Dim objInFile1 'As Object ' TextStream
Dim objInFile2 'As Object ' TextStream
Dim sINPUTDATA1
Dim sINPUTDATA2
Dim sINPUTDATA1BEFOR
Dim sINPUTDATA2BEFOR
Dim INPUT1STATUS
Dim INPUT2STATUS
Dim sScriptFullName
sScriptFullName = Wscript.ScriptFullName
WScript.Echo sScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 指定ファイルをOPEN(入力モード)
Set objInFile1 = objFSO.OpenTextFile(INFILE1, 1)
Set objInFile2 = objFSO.OpenTextFile(INFILE2, 1)
iPCnt1 = 0
iPCnt2 = 0
' 指定ファイルをOPEN(出力モード)
Set objOutFile1 = objFSO.CreateTextFile(OUTFILE1)
Set objOutFile2 = objFSO.CreateTextFile(OUTFILE2)
iOutCnt1 = 0
iOutCnt2 = 0
sINPUTDATA1 = ""
sINPUTDATA2 = ""
wscript.echo "+++++++++++++++++"
Do
If sINPUTDATA1 = sINPUTDATA2 Then
If objInFile1.AtEndOfStream _
And objInFile2.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
INPUT2STATUS = "入力2終了"
Exit Do
ElseIf objInFile2.AtEndOfStream Then
INPUT2STATUS = "入力2終了"
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
ElseIf objInFile1.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
Else
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
' If 正規表現オブジェクト.Test(sINPUTDATA1) = True _
' And objInFile1.AtEndOfStream = False Then
' objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
' iOutCnt1 = iOutCnt1 + 1
' sINPUTDATA1 = objInFile1.ReadLine
' iPCnt1 = iPCnt1 + 1
' End If
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
ElseIf sINPUTDATA1 < sINPUTDATA2 Then ' wscript.echo "入力配列1(処理行) < 入力配列2(検索行)" & vbNewLine _ ' & "処理行:" & 処理行 & " 検索行:" & 検索行 & vbNewLine _ ' & "処理行:" & 入力配列1(処理行) & vbNewLine _ ' & "検索行:" & 入力配列2(検索行) If objInFile1.AtEndOfStream Then INPUT1STATUS = "入力1終了" If objInFile2.AtEndOfStream Then INPUT2STATUS = "入力2終了" wscript.echo sINPUTDATA2 & " 1@@20150809@@@@@@@@" objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き iOutCnt2 = iOutCnt2 + 1 objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き iOutCnt1 = iOutCnt1 + 1 wscript.echo sINPUTDATA2 & " 2@@20150809@@@@@@@@" Exit Do Else objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き iOutCnt2 = iOutCnt2 + 1 sINPUTDATA2BEFOR = sINPUTDATA2 sINPUTDATA2 = objInFile2.ReadLine iPCnt2 = iPCnt2 + 1 If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
End If
ElseIf sINPUTDATA1 > sINPUTDATA2 Then
' wscript.echo "入力配列1(処理行) > 入力配列2(入力行数2)" & vbNewLine _
' & "処理行:" & 処理行 & " 検索行:" & 検索行 & vbNewLine _
' & "処理行:" & 入力配列1(処理行) & vbNewLine _
' & "検索行:" & 入力配列2(検索行)
If objInFile2.AtEndOfStream Then
INPUT2STATUS = "入力2終了"
If objInFile1.AtEndOfStream Then
INPUT1STATUS = "入力1終了"
wscript.echo sINPUTDATA1 & " 1@@20150809+++++++"
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
wscript.echo sINPUTDATA1 & " 2@@20150809++++++++"
Exit Do
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
sINPUTDATA1BEFOR = sINPUTDATA1
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
wscript.echo sINPUTDATA1 & " +++++++"
If iPCnt1 > 2 And sINPUTDATA1BEFOR > sINPUTDATA1 Then Exit Do
End If
Else
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
sINPUTDATA2BEFOR = sINPUTDATA2
sINPUTDATA2 = objInFile2.ReadLine
iPCnt2 = iPCnt2 + 1
If iPCnt2 > 2 And sINPUTDATA2BEFOR > sINPUTDATA2 Then Exit Do
End If
End If
'wscript.echo sINPUTDATA1
Loop '入力行を次々続ける
If sINPUTDATA1BEFOR > sINPUTDATA1 Or sINPUTDATA2BEFOR > sINPUTDATA2 Then
wscript.echo iPCnt1 & " か、" & iPCnt2 & " で、ソートエラーで終了しました。" & vbNewLine _
& "INPUT1STATUS=" & INPUT1STATUS & " INPUT2STATUS=" & INPUT2STATUS
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
objOutFile2.WriteLine sINPUTDATA2 ' 改行(CrLf)付き
iOutCnt2 = iOutCnt2 + 1
End If
wscript.echo OUTFILE1 & " として、" & iOutCnt1 & " 行を出力しました。" & vbNewLine _
& OUTFILE2 & " として、" & iOutCnt2 & " 行を出力しました。"
' 指定ファイルをClose(出力モード)
objOutFile1.Close
objOutFile2.Close
Set objOutFile1 = Nothing
Set objOutFile2 = Nothing
' 指定ファイルをClose(入力モード)
objInFile1.Close
objInFile2.Close
Set objInFile1 = Nothing
Set objInFile2 = Nothing
End Sub
88ACL
Option Explicit
Dim objFSO 'As Object ' FileSystemObject
Dim INFILE1 'As String
Dim iInCnt1
Dim iInCnt2
Dim OUTFILE1 'As String
Dim sStartTime 'As Variant
Dim sEndTime 'As Variant
'***********************************************
'出力()
Set objFSO = CreateObject("Scripting.FileSystemObject")
'比較対象のファイル名を取得
INFILE1 = "aclInlog.txt"
OUTFILE1 = "aclOulog.txt"
wscript.echo now
Call ACLS
wscript.echo now
Set objFSO = Nothing
wscript.Quit
'************************************************
'************************************************
Sub ACLS
Dim iOutCnt1
Dim objOutFile1 'As Object ' TextStream
Dim iPCnt1
Dim objInFile1 'As Object ' TextStream
Dim sINPUTDATA1
Dim sINPUTDATA1NEXT
Dim INPUT1STATUS
Dim sScriptFullName
sScriptFullName = Wscript.ScriptFullName
WScript.Echo sScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 指定ファイルをOPEN(入力モード)
Set objInFile1 = objFSO.OpenTextFile(INFILE1, 1)
iPCnt1 = 0
' 指定ファイルをOPEN(出力モード)
Set objOutFile1 = objFSO.CreateTextFile(OUTFILE1)
iOutCnt1 = 0
sINPUTDATA1 = ""
wscript.echo "+++++++++++++++++"
Dim iPos
iPos = 0
Do
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
WScript.Echo sINPUTDATA1
iPos = InstrRev(sINPUTDATA1,vbcr)
If iPos > 0 then
sINPUTDATA1 = mid(sINPUTDATA1,1,ipos-1)
Do
sINPUTDATA1NEXT = objInFile1.ReadLine
iPos = InstrRev(sINPUTDATA1,":")
If iPos > 0 Then
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
exit Do
Else
sINPUTDATA1 = sINPUTDATA1 & sINPUTDATA1NEXT
End If
Loop
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
End if
If objInFile1.AtEndOfStream Then
Exit Do
End If
'wscript.echo sINPUTDATA1
Loop '入力行を次々続ける
objOutFile1.Close
Set objOutFile1 = Nothing
'指定ファイルをClose(入力モード)
objInFile1.Close
Set objInFile1 = Nothing
End Sub
Dim objFSO 'As Object ' FileSystemObject
Dim INFILE1 'As String
Dim iInCnt1
Dim iInCnt2
Dim OUTFILE1 'As String
Dim sStartTime 'As Variant
Dim sEndTime 'As Variant
'***********************************************
'出力()
Set objFSO = CreateObject("Scripting.FileSystemObject")
'比較対象のファイル名を取得
INFILE1 = "aclInlog.txt"
OUTFILE1 = "aclOulog.txt"
wscript.echo now
Call ACLS
wscript.echo now
Set objFSO = Nothing
wscript.Quit
'************************************************
'************************************************
Sub ACLS
Dim iOutCnt1
Dim objOutFile1 'As Object ' TextStream
Dim iPCnt1
Dim objInFile1 'As Object ' TextStream
Dim sINPUTDATA1
Dim sINPUTDATA1NEXT
Dim INPUT1STATUS
Dim sScriptFullName
sScriptFullName = Wscript.ScriptFullName
WScript.Echo sScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 指定ファイルをOPEN(入力モード)
Set objInFile1 = objFSO.OpenTextFile(INFILE1, 1)
iPCnt1 = 0
' 指定ファイルをOPEN(出力モード)
Set objOutFile1 = objFSO.CreateTextFile(OUTFILE1)
iOutCnt1 = 0
sINPUTDATA1 = ""
wscript.echo "+++++++++++++++++"
Dim iPos
iPos = 0
Do
sINPUTDATA1 = objInFile1.ReadLine
iPCnt1 = iPCnt1 + 1
WScript.Echo sINPUTDATA1
iPos = InstrRev(sINPUTDATA1,vbcr)
If iPos > 0 then
sINPUTDATA1 = mid(sINPUTDATA1,1,ipos-1)
Do
sINPUTDATA1NEXT = objInFile1.ReadLine
iPos = InstrRev(sINPUTDATA1,":")
If iPos > 0 Then
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
exit Do
Else
sINPUTDATA1 = sINPUTDATA1 & sINPUTDATA1NEXT
End If
Loop
Else
objOutFile1.WriteLine sINPUTDATA1 ' 改行(CrLf)付き
iOutCnt1 = iOutCnt1 + 1
End if
If objInFile1.AtEndOfStream Then
Exit Do
End If
'wscript.echo sINPUTDATA1
Loop '入力行を次々続ける
objOutFile1.Close
Set objOutFile1 = Nothing
'指定ファイルをClose(入力モード)
objInFile1.Close
Set objInFile1 = Nothing
End Sub
2015年8月7日金曜日
2015年8月1日土曜日
moji okikae
' 合計 コピー済み スキップ 不一致 失敗 Extras
' ディレクトリ: 1 0 0 0 0 0
' ファイル: 2 1 1 0 0 0
' バイト: 8.40 m 4.20 m 4.20 m 0 0 0
' 時刻: 0:00:00 0:00:00 0:00:00 0:00:00
'Total Copied Skipped Mismatch FAILED Extras
IVal = trim(" 合計 コピー済み スキップ 不一致 失敗 Extras")
'IVal = trim(" Dirs : 8568 118 8450 0 0 101")
'IVal = trim(" Files : 92252 649 91588 0 15 355")
'IVal = trim(" Bytes :150117.417 g 130.72 m149385.290 g 0 11.1 k 52.96 m")
IVal = IVal & " "
OVal = ""
Do While InStr(1, IVal, " ")
IVal = Replace(IVal, "合計 ", "Total ")
IVal = Replace(IVal, "コピー済み ", "Copied ")
IVal = Replace(IVal, "スキップ ", "Skipped ")
IVal = Replace(IVal, "不一致 ", "Mismatch ")
IVal = Replace(IVal, "失敗 ", "FAILED ")
IVal = Replace(IVal, "Extras ", "Extras ")
IVal = Replace(IVal, " g", "g")
IVal = Replace(IVal, " m", "m")
IVal = Replace(IVal, " k", "k")
IVal = Replace(IVal, " ", " ")
Loop
WScript.Echo "IVal=" & IVal
WScript.Echo "iMaxLen=" & iMaxLen & " iPos=" & iPos
WScript.Quit
登録:
投稿 (Atom)