Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Ответить
Настройки темы
VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Возможно вопрос банален, но никак не могу разобраться, как использовать кавычки внутри кавычек в VBS. То есть, например даже элементарная команда
Код: Выделить весь код
msgbox "Меню "Пуск""
выдаёт ошибку. Хочу напечатать именно Меню "Пуск" ,а не Меню Пуск. Так же и с другими командами. Пишу скрипт добавляющий строки в файл и в этих строчках есть кавычки. Был бы признателен за помощь.

Отправлено: 00:31, 15-01-2011

 

Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


OSArev, спасибо, через Exec работает. Получается, что в команде Run нельзя использовать переменные и дело здесь не в кавычках?

Iska, Увидил Ваше сообщение позже. Да, интересное решение, ни за что бы не додумался!

Отправлено: 00:23, 31-01-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 78
Благодарности: 23

Профиль | Отправить PM | Цитировать


Цитата BigBoo:
Получается, что в команде Run нельзя использовать переменные и дело здесь не в кавычках? »
Run используется немного в других случаях.Вот долго не рылся первый попавшийся пример:
Код: Выделить весь код
Dim objWshShell, strFileName, strFullFileName, Message, Title, OpenTextFile, MyVar
Message = "Введите название:"
Title = "Создание документа в формате RTF."
Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

Do Until False
  strFileName = InputBox(Message, Title)
  If strFileName = "" Then
    MyVar = MsgBox("Вы не ввели название или " & Chr(10) & "в название есть недопустимые символы!" & Chr(10) & "" & Chr(10) & "ВВЕДИТЕ НАЗВАНИЕ!!!", vbRetryCancel + vbExclamation, "Демонстрационное окно сообщения")
    If MyVar = vbCancel Then WScript.Quit
  Else
    Exit Do
  End If
Loop
 
   strFullFileName = objFSO.BuildPath(objWshShell.SpecialFolders("C , D ,"), strFileName)
  If objFSO.FileExists(strFullFileName & ".rtf") Then
    WScript.Echo "Документ  ''"& strFileName &".rtf'' - уже существует."
On Error resume Next
    objWshShell.Run(strFullFileName & ".rtf")
    WScript.Quit 0
  Else
    objFSO.CreateTextFile strFullFileName & ".rtf"
  End If

On Error resume Next
    objWshShell.Run(strFullFileName & ".rtf")


Set objWshShell = Nothing
Set objFSO      = Nothing
    WScript.Quit 0
Попробуй. Кстати изменив разрешение .rtf на любое другое, можно создавать практически все объекты.
Очень удобно в повседневной работе.У меня подобные скрипты прописаны в реестре.
Но я сам только с месяца полтора этим увлёкся, так, что извини если будут какие-нибудь накладки
Цитата BigBoo:
Да, интересное решение, ни за что бы не додумался! »
Если это "неподкол", то огромное спасибо за спасибо...
Но, я в принципе ещё ничего толком не умею. Поэтому буду рад общению и любым советам.

Отправлено: 02:53, 31-01-2011 | #12


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Ну просто проблемы какие-то с этими кавычками, особенно при использовании команды Run. Подскажите, как сделать, чтобы заработало?
Код: Выделить весь код
  WSHShell.Run "cacls """"D:\" & Fold"" /E /G ""User"":F"

Отправлено: 02:13, 21-02-2011 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


BigBoo, у Вас тут непонятная мешанина.

Попробуйте так (если я правильно понял):
Код: Выделить весь код
WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F"
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:35, 21-02-2011 | #14


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Iska, спасибо, именно то что нужно. Только смутила логика подсветки кавычек, наверно должно быть как-то так:
Код: Выделить весь код
WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F"

Отправлено: 03:17, 21-02-2011 | #15


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Я подсветил те кавычки, которые превращаются в одну.

Отправлено: 05:12, 21-02-2011 | #16


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Опять вопрос о кавычках в команде Run. Вот такой скрипт:
Код: Выделить весь код
NameExe =  "Nero.exe"  
Target = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\Nero\Nero 10\Nero Burning ROM\"    

WSHShell.Run """" & Target & NameExe
В посте выше предлагалось сделать так:
Код: Выделить весь код
WSHShell.Run """" & Target & NameExe & """"
Оказалось, работает и без последних кавычек, но вот без первых нет:
Код: Выделить весь код
WSHShell.Run Target & NameExe & """"
Никто не пояснит?

Последний раз редактировалось BigBoo, 22-07-2011 в 00:34.


Отправлено: 00:18, 22-07-2011 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


BigBoo, детали, почему так, а не иначе — как обычно, смотрите в MSDN: CreateProcess Function (Windows).

Отправлено: 09:57, 22-07-2011 | #18


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Люди, помогите! Голову сломал - ничего не помогает.
Есть командная строка (из 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"
Необходимо запустить ее из vbs скрипта.
Пробовал так:

Код: Выделить весь код
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run "cmd /c @Echo Off & Set ServiceName=""FileZilla Server"" & Net Stop %ServiceName%||(For /F ""tokens=3"" %%A In ('SC queryex %ServiceName%^|Find ""PID""') Do (TaskKill /F /PID %%A>nul Ping -n 20 127.0.0.1>nul)) & Net start %ServiceName%",0,true
и так:

Код: Выделить весь код
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run "Net Stop ""FileZilla Server""||(For /F ""tokens=3"" %%A In ('SC queryex ""FileZilla Server""^|Find ""PID""') Do (TaskKill /F /PID %%A>nul Ping -n 10 127.0.0.1>nul)) & Net Start ""FileZilla Server""",0,true
Скрипт не выдает ошибок, но и ничего не выполняет %) думаю ошибка в ковычках, но уже и 3 и 4 ковычки пробовал результата 2: либо ошибка выполнения команды (из-за неправильных ковычек), либо отсутствие вообще всего

Помогите пожалуйста!)

Последний раз редактировалось C0D3X, 18-02-2015 в 15:42.


Отправлено: 15:31, 18-02-2015 | #19


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата C0D3X:
думаю ошибка в ковычках, »
Думаю, Вам незачем тупо переносить код пакетного файла в скрипт. И зачем Вам именно в таком виде — разве сервис не останавливается?

Код: Выделить весь код
Option Explicit

Dim strServiceName

Dim objSWbemObjectEx


strServiceName = "messenger"

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
	With .Get("Win32_Service.Name='" & strServiceName & "'")
		If .State = "Running" Then
			If Not .StopService() = 0 Then
				WScript.Echo "Can't stop service [" & strServiceName & "]."
			End If
		End If
	End With
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:15, 18-02-2015 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Нестандартные кавычки EN130 Microsoft Windows 2000/XP 5 13-10-2010 15:20
Разное - [решено] Обработка кавычек в семерке pve Microsoft Windows 7 6 28-01-2010 08:03
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs nod201 Скриптовые языки администрирования Windows 0 05-12-2009 05:44
Разное - [решено] передача кавычек в XmlHttpRequest harrique Программирование и базы данных 3 26-01-2009 08:29
[решено] svcpack.inf, двойные кавычки в параметрах _DRON_ Автоматическая установка Windows 2000/XP/2003 2 23-06-2008 15:37




 
Переход