![]() |
Кавычки внутри кавычек в VBS
Возможно вопрос банален, но никак не могу разобраться, как использовать кавычки внутри кавычек в VBS. То есть, например даже элементарная команда
Код:
msgbox "Меню "Пуск"" |
Удваивать:
Код:
msgbox "Меню ""Пуск""" |
Спасибо, тема закрыта.
|
В дополнение к теме, запуск приложения со строкой, содержащей путь.
Так не работает, ошибка - файл не найден: Код:
WSHShell.Run "C:\Program Files\Internet Explorer\Iexplore.exe www.ya.ru" Код:
WSHShell.Run """C:\Program Files\Internet Explorer\Iexplore.exe"" www.ya.ru" |
Цитата:
Обычный путь - без пробелов, не обязательно заключать в кавычки. Например: Код:
WSHShell.Run "C:\Windows\notepad.exe c:\test.txt" |
Цитата:
Код:
WSHShell.Run ""C:\Program Files\Internet Explorer\Iexplore.exe"" Код:
WSHShell.Run """C:\Program Files\Internet Explorer\Iexplore.exe""" С путями без пробелов согласен, да это и само собой разумеется. |
Цитата:
В конструкции WSHShell.Run ""C:\Program Files\Internet Explorer\Iexplore.exe"" внешние кавычки относятся не к тексту, а к обрамлению текста. А сам текст такой - "C:\Program Files\Internet Explorer\Iexplore.exe". Но чтобы vbs правильно отображал кавычки в самом тексте - их делают двойными. Поэтому они и вышли тройными - WSHShell.Run """C:\Program Files\Internet Explorer\Iexplore.exe""" - относящиеся к обрамлению текста я выделил красным, а кавычки текста синим. Надеюсь, теперь понятно до конца? Кстати, если в vbs нужно передать, например, текст состоящий из кавычек, вот такой: Код:
"" Код:
"""""" |
Помогите люди добрые, битый час бьюсь. Сколько только кавычек не ставил - результат нулевой! Как сделать, чтоб это заработало:
Код:
Set Create = CreateObject("Scripting.FileSystemObject") |
Цитата:
Код:
Set WshShell = CreateObject("WScript.Shell") |
Код:
Str = Folder.Path &"\Папка\Прога.exe" |
OSArev, спасибо, через Exec работает. Получается, что в команде Run нельзя использовать переменные и дело здесь не в кавычках?
Iska, Увидил Ваше сообщение позже. Да, интересное решение, ни за что бы не додумался! :tease: |
Цитата:
Код:
Dim objWshShell, strFileName, strFullFileName, Message, Title, OpenTextFile, MyVar Очень удобно в повседневной работе.У меня подобные скрипты прописаны в реестре. Но я сам только с месяца полтора этим увлёкся, так, что извини если будут какие-нибудь накладки Цитата:
Но, я в принципе ещё ничего толком не умею. Поэтому буду рад общению и любым советам. |
Ну просто проблемы какие-то с этими кавычками, особенно при использовании команды Run. Подскажите, как сделать, чтобы заработало?
Код:
WSHShell.Run "cacls """"D:\" & Fold"" /E /G ""User"":F" |
BigBoo, у Вас тут непонятная мешанина.
Попробуйте так (если я правильно понял): Код:
WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F" |
Iska, спасибо, именно то что нужно. Только смутила логика подсветки кавычек, наверно должно быть как-то так:
Код:
WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F" |
Я подсветил те кавычки, которые превращаются в одну.
|
Опять вопрос о кавычках в команде Run. Вот такой скрипт:
Код:
NameExe = "Nero.exe" Код:
WSHShell.Run """" & Target & NameExe & """" Код:
WSHShell.Run Target & NameExe & """" |
BigBoo, детали, почему так, а не иначе — как обычно, смотрите в MSDN: CreateProcess Function (Windows).
|
Люди, помогите! Голову сломал - ничего не помогает.
Есть командная строка (из bat-файлика точно рботает!): Код:
Net Stop "FileZilla Server"||(For /F "tokens=3" %%A In ('SC queryex "FileZilla Server"^|Find "PID"') Do (TaskKill /F /PID %%A>nul Ping -n 20 127.0.0.1>nul)) & Net start "FileZilla Server" Пробовал так: Код:
Set WshShell = Wscript.CreateObject("Wscript.Shell") Код:
Set WshShell = Wscript.CreateObject("Wscript.Shell") Помогите пожалуйста!) |
Цитата:
Код:
Option Explicit |
Спасибо, Iska! Это хорошее решение, но хотелось бы доработать этот код с такой целью, что: а вдруг сервис завис и простая остановка тут не поможет? Тогда, подождав секунд 10, будет необходимо убить соответствующий процесс и запустить сервис заново. Как будет выглядеть скрипт именно с такой задачей?
|
Во-первых, нужно не снимать процесс, а разбираться в причинах зависания сервиса. Во-вторых, логика «остановить сервис; если не останавливается — снять процесс сервиса, затем запустить сервис заново» мне не понятна.
|
Цитата:
Просто все это сейчас делается руками по звонку одного из филиалов - надо автоматизировать) |
У меня не случалось, чтобы служба «FileZilla Server» зависала. Если у Вас, как Вы пишете:
Цитата:
Цитата:
|
Iska, меня полностью устраивает ваше решение
Все что мне нужно это доработать это решение до примерно такого: Код:
Option Explicit Спасибо! Цитата:
|
C0D3X, у Вас нет задачи. У Вас есть придуманное якобы решение, которое ни разу не решает реальной задачи.
Что на самом деле происходит со службой? Как определяете, что она «зависает»? Что сообщает ОС о «зависшей» службе? Что в журналах событий? Что в логах самой службы? Каково состояние службы в этот момент? Вот какие вопросы надо задавать, и какие задачи решать, вместо того, чтобы тупо периодически перезапускать службу в процессе работы. Это не решение, это извращение. Попытка закрыть глаза на реально существующую проблему. Я, конечно, нарисую Вашу хотелку, но проверить её работоспособность банально не смогу, поскольку у меня никогда такой проблемы с «FileZilla Server» не возникало. Скрытый текст
Код:
Option Explicit |
Iska, огромное спасибо! Абалденный код! :)
А на счет вопросов: у меня тоже пока не было проблем, но поднять этот сервис пришлось совсем недавно и большого опыта работы с ним нет, а в отпуск уходить совсем скоро... Так вот такая последовательность действий решает 99% процентов проблем, которые могут случиться с сервисом, а это значит, что меня не вытащат посреди отпуска на работу из-за того, что не работает FTP. Возможно траблы не случаться вобще никогда и этот код так никогда на 100% и не сработает, но ведь предвидеть и попытаться предотвратить лучше, чем предвидеть и ждать "авось".... Согласны? :) Еще раз большое спасибо! |
Цитата:
|
Iska, голову осторожнее она еще пригодится и не только тебе. От чего столько негодующих эмоций?! Тебя попросили помочь и ты помог, причем этим кодом дал много пищи для размышлений о том как автоматизировать другие процесс, так как, например, запуск 1с с определенной обработкой, перезапуск процессов отвечающих за связь с торг.представителями. Короче, Iska, Все норм! твой код послужил примером для написания еще 3 скриптов, так что что жил, то не зря ;) Удачи! и больше позитива :)
|
Время: 11:14. |
Время: 11:14.
© OSzone.net 2001-