powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поправьте скрипт для создания txt-описания
12 сообщений из 12, страница 1 из 1
Поправьте скрипт для создания txt-описания
    #37162399
Halanghulo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Имеется небольшой скрипт, который лежит в SendTo и при отправке в него создаёт пустой текстовый файл с именем уже имеющейся программы. Использую для создания описания к свежезакачанному хламу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim fso, sFile, nFile, WshShell , f
If WScript.Arguments.Count =  1  Then
 Set fso = CreateObject("Scripting.FileSystemObject")
 sFile= WScript.Arguments.Item( 0 )
 nFile=Replace(sFile, fso.GetExtensionName(sFile), "txt")
 Set f = fso.OpenTextFile(nFile,  2 , true)
     f.Write ""
     f.Close
 Set WshShell = WScript.CreateObject("WScript.Shell")
     WshShell.Run "notepad.exe " & nFile,  1 , false
 Set fso = Nothing
 Set WshShell = Nothing
End If
WScript.Quit

Всё работает, но не устраивает, что созданный файл открывается в Блокноте. Пользуюсь программой Bred3 (так мне удобнее).
Пробовал заменить некоторые строчки таким образом:

Код: plaintext
1.
2.
Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "%PROGRAMFILES%\Bred3\bred3_2k.exe "
или
Код: plaintext
WshShell.Run "C:\Progran Files\Bred3\bred3_2k.exe"
менял (методом научного тыка) косые слева направо, ставил двойные кавычки, слеши и т.д., но скрипт всё равно выдаёт ошибку «не найден файл».
Сразу скажу, что я очень далёк от программирования и меня больше интересует конечный результат, чем процесс, но по возможности хотелось бы разобраться, в чём ошибка. У меня Win XP Home.
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Halanghulo,

Если писать Progran вместо Program, то, естестественно файл не найден
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162418
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и пути, содержащие пробелы, следует зключать в кавычки:
Код: plaintext
WshShell.Run """C:\Program Files\Bred3\bred3_2k.exe"" "
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162421
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProHalanghulo,

Если писать Progran вместо Program, то, естестественно файл не найден
у ТС было и
Код: plaintext
WshShell.Run "%PROGRAMFILES%\Bred3\bred3_2k.exe "

2 Halanghulo,
если путь содержит пробелы, то в WshShell.Run его надо передавать в кавычках:
Код: plaintext
1.
WshShell.Run """%PROGRAMFILES%\Bred3\bred3_2k.exe"" """ & nFile & """",  1 , false
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162493
Halanghulo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, заработало.
Progran конечно же опечатка в вопросе, от руки воспроизводил.
Но вот про такое количество кавычек я бы ни в жизнь не догадался, хотя и слышал, что их удваивают (но не в степень же возводят)!
Я даже не могу определить что они обрамляют. Если это не трудно, объясните в двух словах. Для повышения образованности [(С)Трое из Простоквашино]. Вдруг ещё на какую-нибудь SuperPuperMini переключусь со временем.
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162509
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Halanghulo,
в "двух словах"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
' в метод WshShell.Run надо передать строку "<путь к программе> <параметры>"
' в данном случае параметр один - путь к файлу
' если пути сдержат пробелы - заключаем их в кавычки 
' если не содержат пробелов тоже заключаем в кавычки - вреда не будет
' получаем:
"%PROGRAMFILES%\Bred3\bred3_2k.exe" "<путь к файлу>"

' удваиваем каждую кавычку:
""%PROGRAMFILES%\Bred3\bred3_2k.exe"" ""<путь к файлу>""

' обрамляем получившийся шедевр кавычками:
"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" ""<путь к файлу>"""

' Учитываем, что <путь к файлу> находится в переменной nFile:
"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" """ & nFile & """"
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162518
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет тут никакой степени.
Текстовая константа обрамляется кавычками согласно синтаксису языка. Так что крайние кавычки - это ограничители - они не входят в саму константу.
Чтобы разместить саму кавычку внутри константы - ее надо написать дважды (чтобы она не была воспринята интерпретатором как конец константы)

Вот такая запись аналогична тому, что я написал выше и может послужит иллюстрацией для вас:
Код: plaintext
WshShell.Run Chr( 34 )+"C:\Program Files\Bred3\bred3_2k.exe"+Chr( 34 )+" "

Обрамляют кавычками полное имя файла. Напишите в Пуск-Выполнить:
C:\Program Files\Bred3\bred3_2k.exe
он будет очевидно пытаться найти файл C:\Program и не найдет, а остальная часть строки будет восприниматься как параметр к этому файлу.
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162647
Halanghulo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro не будьте так серьёзны, про степень была шутка.
Меня запутали третьи вложенные кавычки в переменной nFile
Код: plaintext
1.
' Учитываем, что <путь к файлу> находится в переменной nFile:
"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" """ & nFile & """"
Впрочем, я думаю, не стоит дальше засорять тему из-за моей бестолковости. Спасибо всем за помощь.
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37162698
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Halanghulo,

Да ладно, засорим напоследок. Приятно, когда человек хочет разобраться, а не тупо списать.
Скукотища одновременно со мной вроде все объяснил, но чтобы окончательно расставить точки над "ё":

Код: plaintext
"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" """ & nFile & """"


красным я выделил кавычки, которые обрамляют текстовые константы
синим я выделил задвоенные кавычки, которые превратятся в одиночные уже внутри текстовой константы
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Поправьте скрипт для создания txt-описания
    #37795891
Lana13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне очень стыдно, но у меня аналогичный вопрос. Написала скрипт, ему для правильного исполнения нужен параметр запуска (путь к папке, где лежать файлы). Нужно его запустить через powershell, причем путь к папке я получаю из текстового окна в переменную. Есть такая вот процедура:


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Script
Dim objShell, objFolder, 
Dim WshShell, s
			
   s="Запустить переименование файлов в выбранной папке?"
   Set WshShell = CreateObject("WScript.Shell")

   Set objShell = CreateObject("Shell.Application")
			
   If Confirmation(s) Then
   Set WshShell = CreateObject("WScript.Shell")
   WshShell.Run ("""powershell .\Ren_Mp3_.ps1"" """&strDefaultFolder&"""")
			    
End If
End Sub



То есть пытаюсь воспользоваться данным выше советом,а именно:
Код: vbnet
1.
2.
'"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" """ & nFile & """"
'"""%PROGRAMFILES%\Bred3\bred3_2k.exe"" ""<путь к файлу>"""

, но у меня ничего не выходит =(

strDefaultFolder беру из процедуры загрузки формы
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub window_onLoad
	Set WshShell = CreateObject("WScript.Shell")
        strDefaultFolder = WshShell.CurrentDirectory & "\"
	Set objDocument = self.Document
	objDocument.all.txtWay.Value = strDefaultFolder
End Sub



Переменная глобальная, тут проблем быть не должно... Проблема, я думаю, в том, что путь в этой переменной может содержать пробелы, тогда его запуск невозможен... К тому же у меня условие на запуск скрипта, то есть тот самый параметр по умолчанию должен в двойных кавычках быть...
Хотела написать что-то типа
Код: vbnet
1.
WshShell.Run ("""powershell .\Ren_Mp3_.ps1"" """&"&strDefaultFolder&"&"""")

, но тогда скрипт все равно вылетает.

Помогите, пожалуйста!!!
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37796012
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Lana13
> К тому же у меня условие на запуск скрипта, то есть тот самый параметр по умолчанию должен в двойных кавычках быть...

Задлянафига в кавычках?... ( вопрос риторичечкий )

Код: vbnet
1.
2.
' пробуйте, может взлетит
WshShell.Run( "powershell .\Ren_Mp3_.ps1 """""& strDefaultFolder  &"""""" )



ЗЫ: имхо, если используете powershell, писали бы уже всё в ней.
...
Рейтинг: 0 / 0
Поправьте скрипт для создания txt-описания
    #37796070
Lana13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища, спасибо, огромное) Добавила терминатор в конец адресной строки и взлетело))))) Ура)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поправьте скрипт для создания txt-описания
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]