2013-02-25 2 views
2
int main() 
{ 
    // system("start cd i:");   //1. changing to I: but again going back to c: 
    system(" dir i: >>d:\txt.txt"); //2. "Access denied." 
    getch(); 
return 0; 
} 

Может ли кто-нибудь объяснить данные, сгенерированные этим кодом, в операторах один и два. И, пожалуйста, предложите объединить эти две команды в том же system() вызовах.Объединение двух команд в один и тот же системный вызов()

+1

Напишите командный файл и запустите его? – alk

+0

http://i.imgur.com/QTLAtlo.png?1 – cracknut

+0

http://i.imgur.com/JozGWkl.png?1 – cracknut

ответ

0

Команда cd предназначена для изменения каталога текущего.

Чтобы изменить привод, просто введите букву диска, а затем :.

Так, чтобы переключиться на диск I:, вопрос:

I: 

интерпретатор команд позволяет объединить две команды с помощью &:

system("command1 & command2"); 

Что в вашем случае стали бы:

system("I: & dir >>d:\\txt.txt") 

Альтернативно вы можете добавить каждую команду, которую вы хотите выполнить процессором команд, в текстовый файл, по одной команде в строке, чем имя файла на something.bat и просто вызвать это из командной строки. Затем каждая строка будет выполняться командным процессором.

Дальнейшее чтение: http://en.wikipedia.org/wiki/Batch_file

+0

, но он, похоже, не выполняет то, что он должен делать, например: system («команда echo работает> d: \\ echo.txt; dir i: >> d: \\ echo.txt «); дает особенный результат: «Команда работает, dir i:» .. хотя ее правильная работа с & вместо;. – cracknut

+0

спасибо @alk .. наконец-то получил все :-) – cracknut

7
system(" dir i: >>d:\txt.txt"); 

должен быть

system(" dir i: >>d:\\txt.txt"); 

иначе вы пытаетесь создать файл «вкладку», а затем «xt.txt», не допускается.

+0

спасибо fceller !! u are awesome :-) – cracknut

1

Вы можете объединить две команды с &.

system("cd i: & dir i: >>d:\\txt.txt"); 

отметить также, что вам нужно \\ вместо \ на своем пути - в \ нужно экранировать.

+1

спасибо @ user93353, получил его :-) – cracknut

Смежные вопросы