マンガでよめる痔のこと・薬のこと

ファルダの中の.txtファイルに対して、
ある文字が含めましたら、その行を削除します。
他の部分はそのまま残します。
上記の操作を実現したいです。
サンプルを教えてください。
お願いします。
====================
例えば、ファイルa.txt
ーーーーーーーーーーーーーーー
kjklだjkl;じゃ
kljk日本jこdじゃか
jこjkl;j
ーーーーーーーーーーーーーーーーー
”日本”が有るの第二行を削除して、
他の部分そのまま残したい。
ーーーーーーーーーーーーーーー
kjklだjkl;じゃ
jこjkl;j
ーーーーーーーーーーーーーーーーー
上記の操作をWHSで実現したいです。
教えてくださいますようお願いいたします。
======================

A 回答 (1件)

こんな感じですかね、テストしてから本番で使うようにして下さい。


実行するファイルが1つだけなら、ループさせる必要はありません。
'現在のフォルダでテキストファイルの中身から指定した文字列を含む行を削除する
Dim fso, wsho, folder, file
Dim tempFile, outFile,readFile
Dim strLine, Flag, fileName, checkStr

checkStr = "日本" '行に含まれているか調べる文字列をセットする
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set wsho = WScript.CreateObject("WScript.Shell")
Set folder = fso.GetFolder(".")
tempFile = fso.GetTempName
For Each file in folder.files
if UCase(right(file.Name,4)) = ".TXT" then '拡張子が.txt
Set outFile = folder.CreateTextFile(tempFile, true) '作業ファイルを作る
Set readFile = file.OpenAsTextStream(1)
Flag = false
Do until readFile.AtEndOfStream
strLine = readFile.ReadLine '一行読み出し
if instr(strLine, checkStr) = 0 then '指定した文字が含まれていない
outFile.WriteLine(strLine)
end if
loop
readFile.Close
outFile.Close
fileName = file.Name
file.Delete
Set file=fso.GetFile(tempFile)
file.Name=fileName
end if
next
    • good
    • 0
この回答へのお礼

助かりました。
どうもありがとうございます。

お礼日時:2005/03/08 12:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング