![]() |
Вопрос по синтаксису VBScript
Имеется рабочий скрипт вида
dim objExecute, break const command = "cmd /c net view" Set wshshell = Wscript.CreateObject("Wscript.Shell") set ObjExecute = wshshell.Exec (command) 'выполняем команду в оболочке cmd IsBreak = false 'определяем прерывание Do While IsBreak = False if (not ObjExecute.StdOut.AtEndOfStream) then text = text & objExecute.StdOut.ReadAll ' считываем поток выполнения команды End if If IsBreak = true then Exit do End if If ObjExecute.Status = 1 then 'Проверяем статус завершения процесса IsBreak = true Else Wscript.Sleep 100 End if Loop Wscript.echo text Вопрос: Каким образом можно модифицировать константу command для фильтра - выборки (в теории "cmd /c net view | find /i "pc-sale"") Т.к. при выполнении сценария wsh ругается с кодом ошибки на незавершенную конструкцию в этой строке, - т.е. ему не нравятся дополнительные кавычки в параметрах фильтра <off> :) </off> Куда же их можно удачно внедрить? ;) |
dsa
Код:
const command = "cmd /c net view|find /i ""pc-sale""" |
Еще один трабл с кодировкой, когда Wscript.echo text отрабатывается все символы, что в пишуться на русском отображаются как иероглефы. Может кто водскажет как задать вывод Wscript.echo text в кодировке опеределенной?
|
voler
вероятно у тебя сам текст VBS-скрипта в DOS-кодировке |
Нет ты не понял. Текст скрипта у меня в ansi кодировке. А вот та информация что в консоли выводится, она то и в иероглифах.
|
voler
у тебя случайно TEXT формируется не внешней CMD-командой?.. она может выводить результат в OEM-кодировке |
Подскажи как это проверить?
|
сохрани TEXT в файле, вьюер покажет (к примеру в FAR'е).... для других вариантов нужно знать как формируется TEXT
|
Латиница "Text" - номально, а вот кирилица "Текст" - иероглефы.
|
"NET VIEW" формирует результат в OEM-кодировке, нужно перекодировать в ANSI.
Как вариант: http://forum.oszone.net/post-427527-124.html Код:
NET VEW|dos2win |
Господа, а подскажите мне тоже по синтаксису.
Есть скрипт, выполняющий в принципе элементарные операции - последовательный запуск файла(ов) с различными параметрами, выглядит это примерно так: Код:
Set WshShell = WScript.CreateObject("WScript.Shell") Вот тот текст в кавычках является частью параметра2 и не может быть ни в одинарных кавычках ни в каких-то других. Можно побороть? |
Цитата:
В твоем примере три параметра:
|
можно и так сказать, но их нельзя разделить.. как бы это объяснить толком...
нет возможности сначала выполнить параметр1 потом параметр 2, а потом параметр3 разными строками например, все они в одной строке и иначе не работают |
Blast, sorry, по-прежнему не понимаю.
Я вот использую (для тестирования) твой пример, и он нормально работает. С тремя параметрами. В одной строке. Хочешь, чтобы было два параметра?
|
Ну смотри, все это наверное нужно было сразу на живом примере, тем более, что ты поймешь о чем речь :)
Код:
WshShell.Run ("bcdedit.exe /create {ntldr} /d ""Microsoft Windows XP""") выкрутиться можно, не проблема в принципе, то есть взять да и поставить там вместо 4-5 команд вызов cmd с ними, но мне хотелось минимизировать кол-во файлов и в принципе понять возможна ли нужная мне конструкция в vbs Попутно еще хотел бы уточнить как добавить в тот же vbs команду удаления определенной папки с форсированием и без подтверждения удаления да еще и чтоб удаление было выполнено после выполнения всех команд в скрипте, то есть на завершаеющем этапе. |
Blast, с точки зрения синтаксиса все правильно. В этом легко убедиться, заменив WshShell.Run на MsgBox.
А если так попробовать: Код:
WshShell.Run ("%ComSpec% /C bcdedit.exe /create {ntldr} /d ""Microsoft Windows XP""") Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Хотя это и неважно... |
Цитата:
Если ты не против, то я позже еще попристаю, появилась идея еще кое-что усовершенствовать.. аппетит растет во время еды :) |
А есть ли возможность в vbs на начальном этапе выводить окно с чекбоксами для нужных параметров и выполнять их в соответствии с тем какие чекбоксы были отмечены? Я может плохо искал, но не смог найти как это сделать.
|
Цитата:
Цитата:
Blast, попробуй чтоли WshShell.Run с параметрами указать... а если кавычки совсем убрать? Не прокатит? Пробелы замени на _ Цитата:
|
Sham, а вполне прокатило с %ComSpec% /C :)
Цитата:
я не знаю в принципе, то есть в vbs скрипте нельзя? |
Цитата:
|
Sham, спасиб
в принципе пока достаточно того как работает сейчас |
Время: 10:00. |
Время: 10:00.
© OSzone.net 2001-