К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как исполнить консольную команду?

Гость
0 - 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, само-собой, не привилегированный.



Гость
1 - 21.08.2015 - 18:25
Валера, в понедельник подними эту тему.
Решу твой вопрос.
У меня 7z - творит чудеса.
И с МВД обменивается, и с ЦБ РФ, и с нашим фронт-офисом...
И все это из 1С77.
Гость
2 - 21.08.2015 - 18:34
1-DeiMos > К 7z претензий нет. Претензия - к вызову из 1C77. Не к 8.х! К 7.7.
И надо именно в среде Win7. Или w2008. х64 которые.
Гость
3 - 21.08.2015 - 18:36
может в батник(ну или чего-там) и его запускать?
Гость
4 - 21.08.2015 - 18:47
У мну тоже были проблемы из вызова из 1С77.
Говорю жеж, напиши в понедельник.
Из 77 че хошь тебе вызову.
Гость
5 - 21.08.2015 - 18:48
В среде 2008 R2 Server вроде работает уже тыщу лет...
6 - 21.08.2015 - 18:52
Цитата:
Сообщение от VZ Посмотреть сообщение
Пользователь User, само-собой, не привилегированный.
а попробовать от привилегированного? запустить 7.7 от лица администратора?

по крайней мере, вопрос о привилегированности/непривилегированности сразу снимется - будет ясно, в этом причина или в чем-то другом.
Гость
7 - 21.08.2015 - 21:14
6-Блондинка в шок > Не, это вопрос принципиальный. Никто, даже я сам, не работает под админом.
Гость
8 - 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\ *
Гость
9 - 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\ *
Гость
10 - 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 найти не могу :(
И вообще подзабыл уже...
Гость
11 - 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-зип
Гость
12 - 24.08.2015 - 09:12
11-smaharbA >

Сообщить(Шел.Run(КоманднаяСтрока,1,Истина));
Гость
13 - 24.08.2015 - 11:16
Вот так у меня прекрасно работает 7za:

Разархивация:
ЗапускАрх = ?(Скавычками>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);
Гость
14 - 24.08.2015 - 20:49
Хм. Распаковка xmsx - не самоцель. "Семерка" - не "восьмерка", с xmsl не работает, и работать никогда не будет. Напрямую, естественно. Только через жопу: распаковать, а потом парсить многочисленные xml. И только так.
Кстати, не все обормотки на 8.2(3) кушают этот файл: некоторые затыкаются на анализе [юзерских] наименований листов ;) Завлекательные очень :)
Кстати, конвертировать этот файл в более младшие версии - невозможно. Пробовал. И да, загружается он почти 15 минут. Офигеть, и не встать. Хотя у меня 8 Гб. И 64-х разрядная ось, как уже вы поняли.
И выкрутасы (10) - не просто так, я хочу еще вылавливать ошибки выполнения: не дебагом же заниматься при эксплуатации.
Документации по vsh у меня дофига, только - для вермии 5.6.
А на нонешней команда WScript.Sleep FormatNumber(mid(Time,inStr(lcase(LineTxt),"-t")+2))*1000 (при Linetxt="-t5") вдруг перестала работать. В ХП работала, в Win7 - нет.
Гость
15 - 24.08.2015 - 20:53
Я не понял юмора...
Ты вообще собираешься тeстить 7za, или я для кого тут писал зря?
Гость
16 - 24.08.2015 - 21:12
15-DeiMos > Спасибо, Дим, конечно. Так работает. Токо надо заменить 7za.exe на 7z.exe...
Гость
17 - 24.08.2015 - 21:24
Не рекомендую менять.
Если у тебя вдруг заработало 7z, то не факт, что не продолжит глючить.
Рекомендую поменять на 7za.

ЗЫ: Спасибо не пью.
С тебя ящик коньяка.
Гость
18 - 24.08.2015 - 22:05
17-DeiMos > Не могу поменять. Нет такого файла в дистрибутиве. Igor Pavlov исключил по каким-то соображениям.
Гость
19 - 24.08.2015 - 22:10
Ну и ладно.
Работай с 7z.
Если работает - то и хорошо.
Вопрос решен?
Тема закрыта?


К списку вопросов






Copyright ©, Все права защищены