Flasher
|
Posted: Fri Apr 05, 2019 22:50 Post subject: |
|
|
HEXFIX
Пож-та.
Но вообще первый скрипт сейчас выглядит поуниверсальней: Code: | '================================ VBS ===============================
' Назначение: cоздание файла с текстом из буфера обмена (при наличии)
'
' Условия: 1) первый параметр в поле "Команда:": "%COMMANDER_EXE%"
' 2) на Windows x64 запуск от %WinDir%\SysWOW64\wscript.exe
'
' Параметры: "<имя файла>" "<путь назначения>"
' /d — ключ ввода имени через диалог
'
' Примеры: "" "%P" | "%O.lst" "%P" | File "%T" /d
'=============================================== Автор: Flasher © ===
Option Explicit
Const Title = " Создание файла с текстом из буфера обмена"
Dim P, FSO, WSS, Clip, N, S, R, i, Enc, Ext, F, FP, c
Set P = WSH.Arguments : If P.UnNamed.Count < 3 Then _
MsgBox "Укажите 3 параметра!", 4144, Title & " " : WSH.Quit
Set WSS = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
With GetObject("New:1C3B4210-F441-11CE-B9EA-00AA006B1A69)")
.GetFromClipboard : On Error Resume Next : Clip = .GetText
End With
If Err.Number = 0 Then On Error Goto 0 Else WSH.Quit
N = P(1) : If P.Named.Exists("d") Or FSO.GetBaseName(N) = "" Then _
N = RTrim(InputBox(String(5, vbCr) & "Введите имя файла:", Title, N,,_
(CreateObject("htmlfile").parentwindow.self.screen.Height-18240/WSS._
RegRead("HKCU\Control Panel\Desktop\WindowMetrics\AppliedDPI"))*7.5))
S = Split(": ? * "" \ / | < >") : If N = "" Then WSH.Quit
R = Array(-230,-225,-246,698,-24,-24,-24,706,707)
For i = 0 To 8 : N = Replace(N, S(i), ChrW(R(i))) : Next
If InStr(N, ".") = 0 Then N = N & ".txt"
With New Regexp
.Pattern = "[^\s!-‚-›\u0080-\u00FF\u0400-\u04FF\u20A0-\u20CF\u2100-\u214F\w‘’–—]"
.Global = True : If .Test(Clip) Then Enc = True Else Enc = False
End With : Ext = "." & FSO.GetExtensionName(N) : If Ext = "." Then Ext = ""
F = "\\?\" & P(2) & FSO.GetBaseName(N) : FP = F & Ext
While FSO.FileExists(FP) Or FSO.FolderExists(FP)
c = c + 1 : FP = F & " (" & c & ")" & Ext
Wend : If Len(FP) < 264 Then F = Mid(FP, 5) Else F = FP
FSO.CreateTextFile(F, 1, Enc).Write Clip
WSS.Exec P(0) & " /A /O /S """ & Mid(FP, 5) & """" |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|