Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как исполнить консольную команду? (http://forums.kuban.ru/f1040/kak_ispolnit-_konsol-nuyu_komandu-7111586.html)

VZ 21.08.2015 17:56

Как исполнить консольную команду?
 
Затык. Или мозги отсырели.
Имеется задание для компа в виде текстовой строки:

"C:\Program Files (x86)\7-zip\7z.exe" x "D:\Bases8x\Расчёт ЗП за июнь 2015.xlsx" -oC:\Users\User\AppData\Local\Temp\TempXLSX\ *

Через Пуск и консольный ввод этой строки все чудесно исполняется: 7z.exe запускается, ключи-команды кушает, файл раздербенивается куда и как надо во временный каталог.

А из кода - никак.
КомандаСистемы(стрКоманды); - не реагирует. И не ругается, что обидно. Т.е., каталог TempXLSX остается пустым.
И как победить? V77 & Win7, если что. Пользователь User, само-собой, не привилегированный.

DeiMos 21.08.2015 18:25

Валера, в понедельник подними эту тему.
Решу твой вопрос.
У меня 7z - творит чудеса.
И с МВД обменивается, и с ЦБ РФ, и с нашим фронт-офисом...
И все это из 1С77.

VZ 21.08.2015 18:34

1-DeiMos > К 7z претензий нет. Претензия - к вызову из 1C77. Не к 8.х! К 7.7.
И надо именно в среде Win7. Или w2008. х64 которые.

qweqwe123123 21.08.2015 18:36

может в батник(ну или чего-там) и его запускать?

DeiMos 21.08.2015 18:47

У мну тоже были проблемы из вызова из 1С77.
Говорю жеж, напиши в понедельник.
Из 77 че хошь тебе вызову.

DeiMos 21.08.2015 18:48

В среде 2008 R2 Server вроде работает уже тыщу лет...

Блондинка в шок 21.08.2015 18:52

[quote=VZ;39874366]Пользователь User, само-собой, не привилегированный. [/quote]
а попробовать от привилегированного? запустить 7.7 от лица администратора?

по крайней мере, вопрос о привилегированности/непривилегированности сразу снимется - будет ясно, в этом причина или в чем-то другом.

VZ 21.08.2015 21:14

6-Блондинка в шок > Не, это вопрос принципиальный. Никто, даже я сам, не работает под админом.

smaharbA 22.08.2015 19:23

cmd /c "C:\Program Files (x86)\7-zip\7z.exe" x "D:\Bases8x\Расчёт ЗП за июнь 2015.xlsx" -oC:\Users\User\AppData\Local\Temp\TempXLSX\ *

smaharbA 22.08.2015 19:24

%cimspec% /c "C:\Program Files (x86)\7-zip\7z.exe" x "D:\Bases8x\Расчёт ЗП за июнь 2015.xlsx" -oC:\Users\User\AppData\Local\Temp\TempXLSX\ *

VZ 23.08.2015 23:01

9-smaharbA > CMD не хочется: не люблю мелькающих черных окон.
А вот эта фигня что-то не собирпется:
ScriptControl = createobject("MSScriptControl.ScriptControl");
ScriptControl.language="vbscript";
стр="function UnPack()
|On Error Resume Next
|Set WshShell = WScript.CreateObject(""WScript.Shell"")
|WshShell.Run("+КоманднаяСтрока+",1,true)
|if Err.Number = 0 then
|UnPack = """"
|Else
| UnPack = err.Description
|end if
|end function"; // err.Description возвращает наименование ошибки
ScriptControl.AddCode(стр);
рез=ScriptControl.run("UnPack");

- грид, пропущен "|"
Чтой-то вообще в грусти. Да и версия wsh ныне 5.8, а внятного описания различий от 5.6 найти не могу :(
И вообще подзабыл уже...

smaharbA 24.08.2015 09:12

10-VZ >
КомандаСистемы("CMD /C """"%ProgramFiles(x86)%\7-zip\7z.exe"" x ""E:\Bases8x\Расчёт ЗП за июнь 2015.7z"" -o""%temp%\TempXLSX\"" *""")

================================================

КоманднаяСтрока="CMD /C """"%ProgramFiles(x86)%\7-zip\7z.exe"" x ""E:\Bases8x\Расчёт ЗП за июнь 2015.7z"" -o""%temp%\TempXLSX\"" *""";

Шел = Новый COMОбъект("WScript.Shell");

Сообщить(Шел.Run("+КоманднаяСтрока+",1,Истина));

============================================
%ProgramFiles(x86)% для 32-х разрядного 7-зип

%ProgramW6432% для 64 разрядного 7-зип

smaharbA 24.08.2015 09:12

11-smaharbA >

Сообщить(Шел.Run(КоманднаяСтрока,1,Истина));

DeiMos 24.08.2015 11:16

Вот так у меня прекрасно работает [u]7za[/u]:

Разархивация:
ЗапускАрх = ?(Скавычками>0,"""","")+КаталогИБ()+"7za.exe"+?(Скавычками>0,"""","")+" x "+?(Скавычками>0,"""","")+ФормИмяФайлаДанных+?(Скавычками>0,"""","")+" -pПароль -o"+?(Скавычками>0,"""","")+ПутьВывода+?(Скавычками>0,"""","")+" -aoa -r -y -x!*"+?(Скавычками>0,"""","")+КаталогИмпорт+?(Скавычками>0,"""","");
//ЗапуститьПриложение(ЗапускАрх);
WSHShell.Run(ЗапускАрх, 0, -1);

Архивация:
Скавычками=1;
ЗапускАрх = ?(Скавычками>0,"""","")+КаталогИБ()+"7za.exe"+?(Скавычками>0,"""","")+" a "+?(Скавычками>0,"""","")+ФормИмяФайлаДанных+?(Скавычками>0,"""","")+" -aoa -pПароль "+?(Скавычками>0,"""","")+ИмяИмп+?(Скавычками>0,"""","")+"\ -r -y";
//ЗапуститьПриложение(ЗапускАрх);
WSHShell.Run(ЗапускАрх, 0, -1);

VZ 24.08.2015 20:49

Хм. Распаковка xmsx - не самоцель. "Семерка" - не "восьмерка", с xmsl не работает, и работать никогда не будет. Напрямую, естественно. Только через жопу: распаковать, а потом парсить многочисленные xml. И только так.
Кстати, не все обормотки на 8.2(3) кушают этот файл: некоторые затыкаются на анализе [юзерских] наименований листов ;) Завлекательные очень :)
Кстати, конвертировать этот файл в более младшие версии - невозможно. Пробовал. И да, загружается он почти [b]15 минут[/b]. Офигеть, и не встать. Хотя у меня 8 Гб. И 64-х разрядная ось, как уже вы поняли.
И выкрутасы (10) - не просто так, я хочу еще вылавливать ошибки выполнения: не дебагом же заниматься при эксплуатации.
Документации по vsh у меня дофига, только - для вермии 5.6.
А на нонешней команда WScript.Sleep [em]FormatNumber(mid(Time,inStr(lcase(LineTxt),"-t")+2))*1000[/em] (при Linetxt="-t5") вдруг перестала работать. В ХП работала, в Win7 - нет.

DeiMos 24.08.2015 20:53

Я не понял юмора...
Ты вообще собираешься тeстить 7za, или я для кого тут писал зря?

VZ 24.08.2015 21:12

15-DeiMos > Спасибо, Дим, конечно. Так работает. Токо надо заменить 7za.exe на 7z.exe...

DeiMos 24.08.2015 21:24

Не рекомендую менять.
Если у тебя вдруг заработало 7z, то не факт, что не продолжит глючить.
Рекомендую поменять на 7za.

ЗЫ: Спасибо не пью.
С тебя ящик коньяка.

VZ 24.08.2015 22:05

17-DeiMos > Не могу поменять. Нет такого файла в дистрибутиве. Igor Pavlov исключил по каким-то соображениям.

DeiMos 24.08.2015 22:10

Ну и ладно.
Работай с 7z.
Если работает - то и хорошо.
Вопрос решен?
Тема закрыта?


Текущее время: 09:56. Часовой пояс GMT +3.