2013-08-23 1 views
0

Я пишу код C#, который будет вызывать мои windows cmd и выполнять команды на нем, но я застрял в последнем утверждении, потому что после выполнения команды «pscp» он запрашивает «пароль пользователя», которые у меня уже есть, но не знаю, как мой код может позаботиться об этом.Застрял во время выполнения команд cmd через C#

Мой код образца:

const string cmdtext = @"/k cd\&pscp.exe&pscp C:\Users\user\Desktop\Backup\standalone-full.xml [email protected]:/apps/tempdir/express/standalone-full.xml"; 
Process.Start(@"C:\Windows\system32\cmd.exe", cmdtext);          // after executing this command, it asks for the username's password 
Console.ReadLine(); 
+0

Как я знаю, что вы можете PASSE имя пользователя и пароль, как PARAMATERS к PSCP и ему не будет запрашивать их в интерактивном режиме (http://www.nber.org/pscp.html) – Nikolay

+0

Вы можете использовать эту перегрузку Process.Start http://msdn.microsoft.com/en-us/library/sxf2saat.aspx – Ehsan

ответ

0

Вы можете попробовать вместо bitvise клиент SSH. Вы можете поместить пароль в версию командной строки для командной строки.

Кстати, вы должны использовать powershell вместо C# для этих задач.

0

я обычно называю PSCP так:

pscp -l <username> -pw <password> <options> <source> <host>:<target> 

пример:

pscp -l root -pw root C:\myfile.txt 192.168.0.1:/home/myfile.txt 

, который работает без оперативного

+0

Я попробовал это, но это дает фатальную ошибку. –

+0

он работает: pscp -pw root C: \ myfile.txt [email protected]: /home/myfile.txt –

+0

Вы пытались использовать перегрузку 'Process.Start (string fileName, строковые аргументы)' для предоставления аргументов к процессу? [Ссылка] (http://msdn.microsoft.com/en-us/library/h6ak8zt5.aspx) – Alberto

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