|
|
Коллекция VBS-вставок для использования в CMD-скриптах.
Browse for folderЗаголовок может быть многострочным, строки разделяются символом "^".>tst.vbs echo set dir=CreateObject("Shell.Application").BrowseForFolder(0, Replace(WScript.Arguments(0), "^", vbCrLf), 8, 17) : If not dir is Nothing Then WScript.Echo dir.Self.Path set dir=& for /f "delims=" %%a in ( 'cscript //nologo tst.vbs "Заголовок дерева выбора папок:"' ) do set "dir=%%a" if defined dir echo "%dir%" del /q tst.vbs Select fileИспользование VBS здесь необязательно, но тогда нужно не забывать менять кодовую страницу на 1251.>tst.vbs echo WScript.Echo CreateObject("WScript.Shell").Exec("mshta.exe ""about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>""").StdOut.ReadLine set fname=& for /f "delims=" %%a in ('cscript //nologo tst.vbs') do set "fname=%%a" if defined fname echo "%fname%" del /q tst.vbs InputBoxЗаголовок строки может быть многострочным, строки разделяются символом "^".>tst.vbs echo WScript.Echo InputBox(Replace(WScript.Arguments(0), "^", vbCrLf), WScript.Arguments(1), WScript.Arguments(2)) set ln=& for /f "delims=" %%a in ( 'cscript //nologo tst.vbs "Заголовок строки ввода:" "Заголовок окна" "Значение по умолчанию"' ) do set "ln=%%a" if defined ln echo "%ln%" del /q tst.vbs MsgBox & PopupСообщение может быть многострочным, строки разделяются символом "^".Комбинация кнопок, значков и дефолта через суммирование. Например: 4+32+256 -> set opt=292 set opt=17 :: 0 = Кнока "OK" :: 1 = Кнопки "OK" и "Cancel" :: 2 = Кнопки "Abort", "Retry", "Ignore" :: 3 = Кнопки "Yes", "No", "Cancel" :: 4 = Кнопки "Yes" и "No" :: 5 = Кнопки "Retry" и "Cancel" :: 16 = Иконка "Critical Message" :: 32 = Иконка "Question Message" :: 48 = Иконка "Warning Message" :: 64 = Иконка "Information Message" :: 0 = Первая кнопка по умолчанию :: 256 = Вторая кнопка по умолчанию :: 512 = Третья кнопка по умолчанию :: 768 = Четвёртая кнопка по умолчанию :: 4096 = Режим "System modal" (все приложения системы ждут нажатия кнопки) >tst.vbs echo WScript.Echo MsgBox(Replace(WScript.Arguments(0), "^", vbCrLf), WScript.Arguments(1), WScript.Arguments(2)) for /f %%a in ( 'cscript //nologo tst.vbs "Сообщение" %opt% " Заголовок"' ) do set code=%%a :: 1 = OK :: 2 = Отмена (Cancel) :: 3 = Стоп (Abort) :: 4 = Повтор (Retry) :: 5 = Пропустить (Ignore) :: 6 = Да (Yes) :: 7 = Нет (No) del /q tst.vbs set opt=17 :: Время задержки, секунд. 0 = бесконечно set wait=10 >tst.vbs echo WScript.Echo CreateObject("WScript.Shell").Popup(Replace(WScript.Arguments(0), "^", vbCrLf), WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3)) for /f %%a in ( 'cscript //nologo tst.vbs "Сообщение" %wait% " Заголовок" %opt%' ) do set code=%%a :: -1 = время истекло (нет нажатия) del /q tst.vbs Run as AdministratorПрименяется решение через создание стороннего файла (%tmp%\1.cmd) из-за проблем с путями нестандартного вида (спецсимволы, кириллица и проч.)>nul 2>&1 dism&& 2>nul del /q %tmp%\1.cmd|| goto runas exit :runas >%tmp%\1.cmd echo @"%~f0" "параметры запуска" >tst.vbs echo CreateObject("Shell.Application").ShellExecute "%comspec%", "/c %tmp%\1.cmd", "", "runas", 1 cscript //nologo tst.vbs del /q tst.vbs :: Вид окна приложения: normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default Unzip & System copyВ качестве источника может выступать не только архив (.zip или .cab), но и папка, и тогда будет происходить копирование содержимого через системную функцию копирования с окном прогресса.>tst.vbs echo With CreateObject("Shell.Application") .NameSpace(WScript.Arguments(0)).CopyHere(.NameSpace(WScript.Arguments(1)).Items) End With cscript //nologo tst.vbs "$:\Папка\назначения" "$:\Источник\архив.zip" del /q tst.vbs Download>tst.vbs echo set x=CreateObject("Microsoft.XMLHTTP") : x.Open "GET", WScript.Arguments(0), False : x.Send : With CreateObject("Adodb.Stream") : .type = 1 : .open : .write x.responseBody : .savetofile WScript.Arguments(1), 2 : End With cscript //nologo tst.vbs "https://www.url.com/file.ext" "file.ext" del /q tst.vbs ShortcutWith CreateObject("WScript.Shell").CreateShortcut("test.lnk") .TargetPath = "%comspec%" .Arguments = "/c dir& pause" .Description = "MyProgram" .HotKey = "ALT+CTRL+F" ' "ALT+", "CTRL+", "SHIFT+", "EXT+". ' "A" .. "Z", "0" .. "9", "Back", "Tab", "Clear", "Return", "Escape", "Space", "Prior". .IconLocation = "%comspec%, 1" .WindowStyle = "1" ' 3=Maximized, 7=Minimized, 4=Normal .WorkingDirectory = "%windir%" .Save End With ADODB StreamЗамена в бинарном файле символов 0D 0A => "Пробел" 0AМожно указывать символьные строки в кавычках. With CreateObject("ADODB.Stream") .Open .Type = 2 .Charset = "Windows-1252" .LoadFromFile "Исходный файл" data = .ReadText .Close data = Replace(data, Chr(13)&Chr(10), Chr(32)&Chr(10)) .Open .Type = 2 .Charset = "Windows-1252" .WriteText data .SaveToFile "Файл результата", 2 .Close End With set dest = CreateObject("ADODB.Stream") dest.Open dest.Type = 1 With CreateObject("ADODB.Stream") .Open .Type = 1 .LoadFromFile "Исходный файл" .Position = 1000 .CopyTo dest, 1000 .Close End With dest.SaveToFile "Файл результата", 2 dest.Close |
Current time is: 12-Feb 01:25
All times are UTC + 3
|
You cannot post new topics in this forum
You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum |


Log in
Register
Отправлено: 