Ветеран

Сообщения: 2735
Благодарности: 1699
|
Профиль
|
Отправить PM
| Цитировать
Если файл один, Имя можно прописывать явным образом в скрипте.
Если один или несколько, их можно перечислить в аргументе скрипта в кавычках при вызове.
Можно создать значок на скрипт на, например, рабочем столе, помечать в проводнике файл или группу файлов и в проводнике затягивать на него мышкой помеченные файлы
Код: 
FileIn1 = "Z:\Box_In\playlist.txt"
RegExp = " *]"
Rep = "]"
ReDim FileIn(0)
MM = 0
FileIn(0) = FileIn1
With WScript.Arguments
If .Count <> 0 Then
MM = .Count - 1
ReDim FileIn(MM)
For m = 0 To MM
FileIn(m) = .Item(m)
Next
End If
End With
Msg = ""
Set FSO = CreateObject("Scripting.FileSystemObject")
For m = 0 To MM
If Contr1(FSO, FileIn(m), InTxt, Msg) Then
If Contr2(FileIn(m), RegExp, InTxt, Rep, Msg) Then
With FSO.CreateTextFile(FileIn(m), True)
.Write InTxt
.Close
Msg = Msg + FileIn(m) + " ==Done" + vbCrLf
End With
End If
End If
Next
MsgBox Msg
Function Contr1(FSO, fName, txt, MS)
Contr1 = False
On Error Resume Next
With FSO.OpenTextFile(fName, 1)
If Err.Number <> 0 Then
MS = MS + "--- " + fName + vbCrLf + " Error open file. Err.Number=" + CStr(Err.Number) + " " + Err.Description + vbCrLf
On Error GoTo 0
Exit Function
End If
txt = .ReadAll
If Err.Number <> 0 Then
MS = MS + "--- " + fName + vbCrLf + " Error read file. Err.Number=" + CStr(Err.Number) + " " + Err.Description + vbCrLf
On Error GoTo 0
Exit Function
End If
.Close
End With
On Error GoTo 0
Contr1 = True
End Function
Function Contr2(fName, RExp, txt, RR, MS)
Contr2 = False
With CreateObject("VBScript.RegExp")
.Pattern = RExp
.IgnoreCase = True
.Global = True
If Not .Test(txt) Then
MS = MS + "--- " + fName + vbCrLf + " no replace." + " Reg expression: " + """" + RExp + """" + vbCrLf
Exit Function
End If
txt = .Replace(txt, RR)
End With
Contr2 = True
End Function
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Отправлено: 21:33, 09-08-2019
| #8
|