|
v7: Выполнение bat файлов | ☑ | ||
---|---|---|---|---|
0
MiracMC
27.08.14
✎
20:18
|
Приветствую...
Есть задачка генерировать и выполнять *.bat файлы. Кодом генерирую, сохраняю и выполняю при помощи WScript.Shell.Run вот так: Т1=СоздатьОбъект("Текст"); Т1.ДобавитьСтроку("rwinsta " + ИД + " /server:" + СокрЛП(Сервер.Адрес)); Т1.Записать(КаталогИБ()+"check_.bat"); Батник = КаталогИБ()+"check_.bat"; Попытка Shell = СоздатьОбъект("WScript.Shell"); Shell.Run(Батник,0,1); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; В итоге файл создан и осуществлена попытка выполнения, но эффекта нет. Ничего не происходит. Если этот же bat-ник запустить вручную - выполняется нормально. Не могу понять в чем проблема. Хотя предполагаю, что именно в самой команде RWINSTA, так как если, к примеру вот такой батник создать Т1=СоздатьОбъект("Текст"); Т1.ДобавитьСтроку("qwinsta /server:" + СокрЛП(Сервер.Адрес) + " > " + Симв(34) + файлРезультата + Симв(34)); Т1.Записать(КаталогИБ()+"check.bat"); Батник = КаталогИБ()+"check.bat"; Попытка Shell = СоздатьОбъект("WScript.Shell"); Shell.Run(Батник,0,-1); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Все работает нормально.... |
|||
1
Партизан
27.08.14
✎
20:24
|
(0) какая необходимость работать именно с BAT файлами, а не с CMD ?
|
|||
2
MiracMC
27.08.14
✎
20:29
|
да по сути можно и с CMD на прямую...
какие есть варианты? ЗЫ дело все в том, что с другими командами CMD такая же конструкция работает. Более того скажу, что и на другой машине, но с такой же ОС (Win2003Enterprise) и правами работает нормально... а тут лажа какая то((( |
|||
3
Партизан
27.08.14
✎
20:35
|
(2) bat файлы не работают в х64 виндах, т.к. работают через command.com
|
|||
4
MiracMC
27.08.14
✎
20:39
|
система х32
говорю еще раз... другие команды, типа ping, qwinsta ... переданы через такую же конструкцию в батник выполняются нормально... а вот именно с rwinsta возникла некая проблема... уже понимаю, вроде, что дело в правах... но пользователь то админ...... |
|||
5
Crush
27.08.14
✎
20:44
|
А если Shell.Run(Батник);
И в самом батнике паузу в конце влепить? |
|||
6
MiracMC
27.08.14
✎
21:08
|
по идее запуск через Run(команда,режим_окна,режим_ожидания) в моем случае режим_окна = 0, т.е. без окна (не видимое) и режим_ожидания = 1, т.е. ожидать окончания подразумевать, что именно ждать завершения оно и будет..
я пробовал режим_окна = 1... так окно просто помигивает и все... вывод результата в файл тоже результата не дал... файл пустой... |
|||
7
Z1
27.08.14
✎
21:25
|
||||
8
MiracMC
27.08.14
✎
21:31
|
(7) ссылка в посте, на который Вы ссылаетесь приводит к "Веб-сайт, на который вы хотите перейти, содержит вредоносное ПО!" ))))
|
|||
9
Z1
27.08.14
✎
21:34
|
(8) не очень понимаю.
файл есть в приведенном в 7 посте сайта 1cpp |
|||
10
КонецЦикла
27.08.14
✎
21:37
|
Через команду системы попробуй
|
|||
11
КонецЦикла
27.08.14
✎
21:39
|
... и через ЗапуститьПриложение - мне помогло запускать скрипты vbs
|
|||
12
MiracMC
27.08.14
✎
21:39
|
(9) файл то есть... а вот статья с описанием с сайта "проклуб" выдает то, что я написал выше...
(10) по подробней, если можно.... |
|||
13
MiracMC
27.08.14
✎
21:39
|
(11) сейчас попробую через ЗапуститьПриложение ...
|
|||
14
MiracMC
27.08.14
✎
21:41
|
не... эффект то же... окно помигивает и ничего не происходит((((
|
|||
15
КонецЦикла
27.08.14
✎
21:44
|
Попробуй на vbs написать
|
|||
16
MiracMC
27.08.14
✎
22:01
|
умудрился словить принтскрином окно, которое мигало при выполнении батника... так там вот какая штука
"rwinsta" не является внутренней или внешней командой... но если в окне cmd написать эту команду - работает на ура... что это может быть? |
|||
17
Партизан
27.08.14
✎
22:07
|
(16) а ты напиши эту команду в окне command.com
|
|||
18
ДенисЧ
27.08.14
✎
22:08
|
(16) пути - они хитрая штука...
|
|||
19
Crush
27.08.14
✎
22:08
|
(16) содержимое переменной %PATH%
|
|||
20
MiracMC
27.08.14
✎
22:18
|
(17) так и не понял куда написать? в CMD? так говорю ж.. работает...
(16) это то понятно... что сделать то? (17) %PATH% возвращает c:\windows\system32... дописіваю его в батник, что б получилось c:\windows\system32\rwinsta 12833/server:192.168.0.1 все равно нет такой команды |
|||
21
Партизан
27.08.14
✎
22:19
|
(20) cmd.exe и command.com - немного разные вещи
|
|||
22
Партизан
27.08.14
✎
22:22
|
гугл дает эту ссылку: http://www.fixerrorkit.com/fix-error/fix-rwinsta.exe-error.html
|
|||
23
MiracMC
27.08.14
✎
22:22
|
(21) не спорю... но у меня его нет, я так понимаю...
|
|||
24
Партизан
27.08.14
✎
22:25
|
(23) ну как-бы батники выполняются в command.com, а не в cmd, а если система х32, то почему нет?
|
|||
25
MiracMC
27.08.14
✎
22:29
|
(24) "лыжи не едут..." как его запустить то?
|
|||
26
MiracMC
27.08.14
✎
22:35
|
C:\WINDOWS\system32\rwinsta.exe 12833 /server:192.168.0.1
так тоже не видит его... права проверил.. разрешения тоже((( повторюсь, но так же команда, хоть с полным путем, хоть без такового из CMD выполняется на ура((( |
|||
27
Партизан
27.08.14
✎
22:36
|
(25) как-то так, не? http://www.mediafire.com/view/b7qkuuxh5vv459p/Буфер_обмена01.png
|
|||
28
Партизан
27.08.14
✎
22:40
|
че насчет (22) ?
|
|||
29
MiracMC
27.08.14
✎
22:47
|
почитал... но это немного не то, что у меня..
файл rwinsta.exe есть на своем месте в C:\WINDOWS\system32\. если я его через cdm руцями пишу - работает. если я созданый батник подкидываю в CMD - тоже работает... а вот через RUN - нет и хоть ты тресни(((( |
|||
30
Партизан
27.08.14
✎
22:49
|
(29) ну так запиши в RUN принудительно, что запускать через CMD, а не по расширению
|
|||
31
MiracMC
27.08.14
✎
22:50
|
(27) моя ОС Windows 2003 Ent не находит такую команду или файл ((((
|
|||
32
Партизан
27.08.14
✎
23:03
|
(31) странно, но скриншот с Windows 2003, standard правда, но дистрибутив-то ведь один?
|
|||
33
mehfk
27.08.14
✎
23:03
|
(3) Бабушка сказку рассказала?
|
|||
34
Партизан
27.08.14
✎
23:07
|
(33) да,конечно ))
(31) можешь не проверять, проверил, rwinsta у меня запускается |
|||
35
Jump
27.08.14
✎
23:13
|
(0)Проблема вестимо в путях и правах.
Поясню - запускаешь батник руками - он запускается из той директории где лежит, и под твоими правами. -запускаешь из кода или планировщика - он запускается не из той директории где лежит, и пользователь скорее всего будет встроенная учетная запись system. В общем смотри права пользователя system и относительные пути. |
|||
36
Jump
27.08.14
✎
23:14
|
Для отладки - перенаправь вывод в лог файл, увидишь что происходит.
|
|||
37
mehfk
27.08.14
✎
23:15
|
(34) Такой большой, а в сказки веришь :)
|
|||
38
Партизан
27.08.14
✎
23:17
|
(37) все вышенаписанное мной можно считать непроверенным бредом, ну, почти.
(35) >> он запускается не из той директории где лежит он же полные пути указывал. |
|||
39
Jump
27.08.14
✎
23:19
|
(38)Повторю - внимательно смотреть пути и права.
Либо то либо другое, или все вместе. |
|||
40
Jump
27.08.14
✎
23:20
|
Цитирую (20) "c:\windows\system32\rwinsta 12833/server:192.168.0.1 "
А теперь вспоминаем что у пользователя system под которым запуститься батник НЕТ ПРАВ НА СЕТЬ! |
|||
41
MiracMC
28.08.14
✎
00:10
|
(40) вопрос далеко не в сети, так как ошибка описана в (16)
на самом деле я решил задачу, но несколько не стандартным способом. корень проблемы был с том, что ОС, на которой я сейчас колдовал регулярно получала обновления, а ОС, на которой я это все дело тестировал - такая же, но на виртуальной машине и апдейтов в глаза никогда не видела. как следствие файл rwinsta.exe на обновленной ОС весил 25 Кб, а на моей "виртуалке" всего 17 кб... я скопировал файл rwinsta.exe с виртуалки в каталог базы, которую настраиваю сейчас и прописал жестко путь в батнике именно к этому файлу. все заработало... всем спасибо за содействие и напутствие... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |