Цитата v79italya:
Вот этот макрос, сделанный из скрипта, работает не загружая в Excel. Вот, наподобие этого и хотел. »
|
Там, похоже, обрабатываются все файлы .csv в указанной папке.
Вот мой вариант vbs-скрипта чтобы удалить во всех файлах CSV в указанной папке строки, содержащие null
Код:
BoxIn0 = "Z:\Box_In"
BoxIn0 = ""
FileIn = "^.*\.csv$"
Repl = "\n.*,null.*"
BoxIn = ""
With WScript.Arguments
If .Count > 0 Then
BoxIn = Trim(.Item(0))
If Right(BoxIn, 1) = "\" Then BoxIn = Mid(BoxIn, 1, Len(BoxIn) - 1)
Else
Set objShell = CreateObject("Shell.Application")
Set objBoxIn = objShell.BrowseForFolder(0, "Выбирайте папку для обработки CSV-файлов", 1, BoxIn0)
If objBoxIn Is Nothing Then
MsgBox "Папка не выбрана, скрипт завершаем"
WScript.Quit 2
End If
BoxIn = objBoxIn.Self.Path
End If
End With
With CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set Folds = .GetFolder(BoxIn)
If Err.Number <> 0 Then
MsgBox "Ошибка при открытии папки" + vbCrLf + BoxIn + vbCrLf + vbCrLf + Err.Description
WScript.Quit 2
End If
On Error GoTo 0
Set RegMaska = CreateObject("VBScript.RegExp")
RegMaska.Pattern = FileIn
RegMaska.IgnoreCase = True
Set RegRepl = CreateObject("VBScript.RegExp")
RegRepl.Pattern = Repl
RegRepl.IgnoreCase = True
RegRepl.Global = True
Set Files = Folds.Files
For Each jf In Files
If RegMaska.Test(jf) Then
' MsgBox jf
On Error Resume Next
Err.Number = 0
Set fIn = .OpenTextFile(jf, 1, False)
If Err.Number <> 0 Then
MsgBox "Ошибка при открытии файла" + vbCrLf + .GetAbsolutePathName(jf) + vbCrLf + vbCrLf + Err.Description
On Error GoTo 0
' WScript.Quit 2
Else
Alls = ""
Alls = fIn.ReadAll
fIn.Close
On Error GoTo 0
If RegRepl.Test(Alls) Then
jfNew = jf.Path
If .FileExists(jf + ".bak") Then .DeleteFile jf + ".bak", True
.MoveFile jf, jf + ".bak" ' ==== Создание страх копии
With .CreateTextFile(jfNew, True)
.Write (RegRepl.Replace(Alls, ""))
.Close
End With
End If
End If
End If
Next
End With
Можете просто перетащить обрабатываемую папку из Проводника на скрипт или на иконку, созданную для скрипта на рабочем столе. Ухватите её мышкой, перетащите на скрипт и отпустите.
Можете вызвать скрипт из командной строки, указав в аргументе скрипта в кавычках путь к папке.
Можете простр вызвать скрипт, откроется интерфейс для открытия нужной папки.
Я предусмотрел для изменяемых файлов создание страховой копии с расширением .bak