VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Ответить
 • Просмотры: 1
Аватара пользователя
OSArev

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение OSArev »

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



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

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

Цитата BigBoo:



Получается, что в команде Run нельзя использовать переменные и дело здесь не в кавычках?
VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS




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:



Да, интересное решение, ни за что бы не додумался!
VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS




Если это "неподкол", то огромное спасибо за спасибо...

Но, я в принципе ещё ничего толком не умею. Поэтому буду рад общению и любым советам.
Аватара пользователя
OSArev

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение OSArev »

Ну просто проблемы какие-то с этими кавычками, особенно при использовании команды Run. Подскажите, как сделать, чтобы заработало?

Код:

Код: Выделить всё

  WSHShell.Run "cacls """"D:\" & Fold"" /E /G ""User"":F"
Аватара пользователя
BigBoo

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение BigBoo »

Ну просто проблемы какие-то с этими кавычками, особенно при использовании команды Run. Подскажите, как сделать, чтобы заработало?

Код:

Код: Выделить всё

  WSHShell.Run "cacls """"D:\" & Fold"" /E /G ""User"":F"
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

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



Попробуйте так (если я правильно понял):



Код:

Код: Выделить всё

WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F"
Аватара пользователя
BigBoo

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение BigBoo »

Iska, спасибо, именно то что нужно. Только смутила логика подсветки кавычек, наверно должно быть как-то так:

Код:

Код: Выделить всё

WSHShell.Run "cacls.exe ""D:\" & Fold & """ /E /G " & User & ":F"
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

Опять вопрос о кавычках в команде Run. Вот такой скрипт:

Код:

Код: Выделить всё

NameExe =  "Nero.exe"  
Target = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\Nero\Nero 10\Nero Burning ROM\"    
WSHShell.Run """" & Target & NameExe

В
VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS
выше предлагалось сделать так:

Код:

Код: Выделить всё

WSHShell.Run """" & Target & NameExe & """"

Оказалось, работает и без последних кавычек, но вот без первых нет:

Код:

Код: Выделить всё

WSHShell.Run Target & NameExe & """"

Никто не пояснит?
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

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

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

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

Re: VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS

Сообщение Iska »

Цитата C0D3X:



думаю ошибка в ковычках,
VBS/WSH/JS - [решено] Кавычки внутри кавычек в VBS




Думаю, Вам незачем тупо переносить код пакетного файла в скрипт. И зачем Вам именно в таком виде — разве сервис не останавливается?





Код:

Код: Выделить всё

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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»