Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Объединить два скрипта VBScript и JScript (http://forum.oszone.net/showthread.php?t=352626)

denis19 19-12-2022 22:15 2999281

Объединить два скрипта VBScript и JScript
 
Здравствуйте. Есть два скрипта, первый VBScript.vbs создаёт новый блокнот и вставляет в него только что скопированный текст. Скопировал - запустил - и у нас готовый блокнот с вставленным в него текстом из буфера обмена. Так же есть окошко для ввода имени новому блокноту.
И второй, это JScript.js. Он создаёт ярлык URL, но он создаёт URL с одним и тем же с адресом, который постоянно в скрипте, буфер обмена не задействован.
Можно ли их объединить или подправить один, чтоб было как и в первом, но только чтоб создавался уже URL с новой вставленной туда ссылкой, тоже из буфера обмена?
Скопировал ссылку - нажал - и у меня новый URL

Этот скрипт VBScript.vbs, создание блокнота со вставкой текста из буфера

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
clipboard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("text")
Randomize()
FileName=Inputbox("Введите имя:","Создание текстового документа.")
'Для кнопки Отмена или для пустого поля ввода
If FileName=Empty Then
WScript.Quit
End If
If FSO.FileExists(FileName & ".txt") Then
WScript.Quit 0
Else
End If
set oFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("" & FileName & ".txt", 2, True)
ofile.WriteLine(clipboard)
ofile.Close

И второй, это JScript.js. Создаёт ярлык URL, адрес там постоянный

var Myshell = new ActiveXObject("WScript.Shell");
var mypath = Myshell.SpecialFolders("Desktop");
var myshortcut = Myshell.CreateShortcut(mypath + "\\МОЙ НОВЫЙ.url");
myshortcut.TargetPath = Myshell.ExpandEnvironmentStrings("http://www.oszone.net/")
myshortcut.Save();

Serguei Kouzmine 20-12-2022 04:52 2999297

перепишите джаваскрипт кусок на вбскрипт

DJ Mogarych 20-12-2022 08:57 2999308

А лучше напишите поточнее, что вы хотите получить, с примером. На Powershell это будет две с половиной строки.

megaloman 20-12-2022 09:07 2999310

Код:

clipboard = CreateObject("HTMLFile").parentWindow.clipboardData.GetData("text")
Filename = InputBox("Введите имя:", "Создание текстового документа.")
If Filename = Empty Then WScript.Quit

With CreateObject("Scripting.FileSystemObject")
    If .FileExists(Filename + ".txt") Then WScript.Quit 0
    With .OpenTextFile(Filename + ".txt", 2, True)
        .WriteLine (clipboard)
        .Close
    End With
End With

With CreateObject("WScript.Shell")
    Set myshortcut = .CreateShortcut(.SpecialFolders("Desktop") + "\" + Filename + ".txt.url")
    myshortcut.TargetPath = .ExpandEnvironmentStrings(clipboard)
    myshortcut.Save
End With


denis19 20-12-2022 12:46 2999324

Цитата:

Цитата DJ Mogarych
напишите поточнее, что вы хотите получить »

Как и в первом скрипте создания блокнота, только создаваться уже будет не блокнот, а ярлык URL, уже буду копировать не обычный текст, а ссылку. Скопировал ссылку - запустил - и у нас готовый ярлык URL с вставленным в него адресом из буфера обмена.
Ответ у megaloman, всё хорошо работает.

Цитата:

Цитата megaloman
Filename + ".txt.url" »

Спасибо, всё работает. Только маленький вопрос, у созданного ярлыка расширение как у блокнота .txt, это так и должно быть?

megaloman 20-12-2022 13:38 2999329

Цитата:

Цитата denis19
у созданного ярлыка расширение как у блокнота .txt, это так и должно быть? »

Вообще-то расширение url, txt в названии ярлыка. Не нравится, сделайте
Код:

    Set myshortcut = .CreateShortcut(.SpecialFolders("Desktop") + "\" + Filename + ".url")
Или придумайте любое другое название ярлыка вместо определённого в переменной Filename

denis19 20-12-2022 13:50 2999330

Тьфу, извиняюсь, я поторопился. Сейчас только заметил что при вставке обычного текста создаётся и блокнот тоже, это очень удобно одним скриптом делать и ярлык и блокнот. Но только при вставке текста хоть и создаётся, но всплывает окно с ошибкой, можно ли это исправить? Было бы супер, скрипт как два в одном.

megaloman 20-12-2022 18:21 2999338

Если в буфере не ссылка, иконка не должна создаваться?
Код:

clipboard = CreateObject("HTMLFile").parentWindow.clipboardData.GetData("text")
Filename = InputBox("Введите имя:", "Создание текстового документа.")
If Filename = Empty Then WScript.Quit

With CreateObject("Scripting.FileSystemObject")
    If .FileExists(Filename + ".txt") Then WScript.Quit 0
    With .OpenTextFile(Filename + ".txt", 2, True)
        .WriteLine (clipboard)
        .Close
    End With
End With

On Error Resume Next
        With CreateObject("WScript.Shell")
                Set myshortcut = .CreateShortcut(.SpecialFolders("Desktop") + "\" + Filename + ".url")
                myshortcut.TargetPath = .ExpandEnvironmentStrings(clipboard)
                myshortcut.Save
        End With
On Error GoTo 0


denis19 20-12-2022 19:56 2999347

Цитата:

Цитата megaloman
иконка не должна создаваться? »

Так у блокнота она же всегда есть, своя. Но сейчас проблема в другом, они рабочем столе почему то создаются скрытыми, новые файлы видно если только рабочий стол просматривать из какой то папки, это слева через область переходов. Но там мне непонятно, заглянул в свойства файла, галочки что он скрытый или только чтение там не стоят. Так же параметрах папок скрытие отключено. Не знаю почему скрыты. Постоянно они видны становятся только если проводник перезапущу.

denis19 29-12-2022 02:05 2999940

Цитата:

Цитата megaloman
Если в буфере не ссылка, иконка не должна создаваться? »

Здравствуйте ещё раз. Кнопку сделал в контекстном меню, пытаясь делать ярлык в какой нибудь папке, но он всегда создаётся только на рабочем столе. Можно ли сделать чтоб создавалось везде?


Время: 00:44.

Время: 00:44.
© OSzone.net 2001-