Передача cmd.exe нескольких команд в одной строке
От: -realex-  
Дата: 14.12.05 09:04
Оценка:
Мне нужно выполнить несколько shell-команд, причем нежелательно, чтобы программа создавала bat-файл, но, к сожалению, не всё получается, например

Set /p text=     enter text:
Echo %text%>"%COMPUTERNAME%.txt"
Echo %text%


преобразовываем в одну строку:

cmd /C Set /p text=     enter text:  &Echo %text%>"%COMPUTERNAME%.txt" &Echo %text%


в результате %text% неопределено хотя в остальном всё работает.
Re: Передача cmd.exe нескольких команд в одной строке
От: PolDey  
Дата: 14.12.05 13:54
Оценка:
Здравствуйте, -realex-, Вы писали:

R>Мне нужно выполнить несколько shell-команд, причем нежелательно, чтобы программа создавала bat-файл, но, к сожалению, не всё получается, например


R>
R>Set /p text=     enter text:
R>Echo %text%>"%COMPUTERNAME%.txt"
R>Echo %text%
R>


R>преобразовываем в одну строку:


R>
R>cmd /C Set /p text=     enter text:  &Echo %text%>"%COMPUTERNAME%.txt" &Echo %text%
R>


R>в результате %text% неопределено хотя в остальном всё работает.


Попробуй создать pipe и заставить интерпретатор команд читать этот канал. туда пиши так, как в первом случае — команда-одна строка.
Если не сможешь, извратись с созданием временного командного файла.
(и не забывай про контексты выполнения командного файла)
Удачи.
Re[2]: Передача cmd.exe нескольких команд в одной строке
От: -realex-  
Дата: 14.12.05 19:36
Оценка:
PD>Попробуй создать pipe и заставить интерпретатор команд читать этот канал. туда пиши так, как в первом случае — команда-одна строка.
Возникают проблемы с циклами, может, еще с чем-нибудь, все-таки строки получаются независимыми друг от друга.

PD>Если не сможешь, извратись с созданием временного командного файла.

С временным файлом все работает, просто желательно обойтись без него. Если не будет других идей, придется делать так.

PD>Удачи.

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.