リストファイルを処理するスクリプト (BATch/VBScript/PowerShell)

大体同じ事をするスクリプト。バッチとVBScript とPowerShellで作成してみた。

ソースはこちら DoList.zip

1)バッチ

if not exist list.txt (
  echo list.txt ファイルがありません >> share.log
  exit
 )
for /F %%S in (list.txt) do (
  echo %%S >> chk.log
)

2)VBScript

on error resume next
Dim fso,theFile,theLog,s
Set fso = CreateObject(“Scripting.FileSystemObject”)
Set theFile = fso.OpenTextFile(“list.txt”,1,False)
Set theLog  = fso.OpenTextFile(“chk.log” ,8,True)

if err.number <> 0 then
    theLog.WriteLine(“ファイルlist.txtが見つかりません”)
else
        Do While theFile.AtEndOfStream <> True
            s = theFile.ReadLine
            theLog.WriteLine(s)
        Loop
    theFile.Close
end if
theLog.Close

3)PowerShell

#ここでwrite-outputは要らないが他で転用のために記載
if (Test-Path list.txt) {
    foreach ($s in (get-content list.txt)) {
        #write-output $s >> check.log #UTF8になる
        write-output $s | add-content -encoding String check.log
    }
} else{
    write-output “ファイル list.txt がありません”  |add-content -encoding String check.log
}

3)’PowerShellその2

# PowerShellは以下でも同じ。alias利用。

if (Test-Path list.txt) {
    foreach ($s in (gc list.txt)) {
        echo $s |ac -enc String check.log
    }
} else{
    echo “ファイル list.txt がありません” | ac -enc String check.log
}

3)” PowerShell その3

# foreachの少し違う使い方。foreachは%でも置き換えられる。
if (Test-Path list.txt) {
    gc list.txt| foreach { echo $_ | ac -enc String check.log}
} else{
    echo “ファイル list.txt がありません” | ac -enc String check.log
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA