Eseguire comando DOS da Visual Studio .NET 2005 c#

mercoledì 22 settembre 2010 - 08.40
Tag Elenco Tags  C#  |  .NET 2.0  |  Windows XP  |  Visual Studio 2005

fabi88willi77 Profilo | Newbie

Buongiorno a tutti,
vorrei lanciare un comando DOS che mi formatta una compact flash(collegata al pc tramite card reader all in one) e la rende bootstrappabile copiandoci sopra il sistema operativo DOS. Le righe di codice che utilizzo, sono le seguenti:


ProcessStartInfo process = new ProcessStartInfo();
process.CreateNoWindow = false;
process.UseShellExecute = false;
process.FileName = "cmd.exe";
process.Arguments = "/c " + fbdDirCfg.SelectedPath +"\\HPUSBF.EXE K: -B:DOS622 -Y";
try
{

using (Process ProcessoExe = Process.Start(process))
{
ProcessoExe.WaitForExit();
}
}
catch
{

}
Il mio problema è questo: si apre la schermata di dos, vedo che la compact flash viene formattata. Poi appena arriva a 100,vedo x una frazione di secondo la scritta /*ERROR*/ ma non riesco a leggere quale errore mi compare, dato che la finestra si chiude immediatamente. E' possibile ricavare un file di log? Come posso risolvere il mio problema? Premetto che le stesse istruzioni, eseguite in un file "format.bat", funzionano. Ho già provato a lanciare questo file da c#, ma non ha portato a risultati soddisfacenti!
Grazie per il supporto.

Fabien Sartori

alx_81 Profilo | Guru

>Buongiorno a tutti,
ciao

>Il mio problema è questo: si apre la schermata di dos, vedo che
>la compact flash viene formattata. Poi appena arriva a 100,vedo
>x una frazione di secondo la scritta /*ERROR*/ ma non riesco
>a leggere quale errore mi compare, dato che la finestra si chiude
>immediatamente. E' possibile ricavare un file di log? Come posso
>risolvere il mio problema? Premetto che le stesse istruzioni,
>eseguite in un file "format.bat", funzionano. Ho già provato
>a lanciare questo file da c#, ma non ha portato a risultati soddisfacenti!
se sei in una console application, e sembra sia così, aggiungi una Console.ReadLine();
In questo modo, dopo l'esecuzione il programma si aspetta almeno un invio prima di uscire.
Almeno cerchiamo di capire l'errore..

>Grazie per il supporto.
di nulla!

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

NAPOLINET Profilo | Newbie

Ciao ragazzi,
sto impazzendo. Vi scrivo il codice in questione:
processo.CreateNoWindow = false;
processo.UseShellExecute = false;
processo.FileName = "cmd.exe";
processo.Arguments = "/c \"J:\\Programmi\\MySQL\\MySQL Server 5.1\\bin\\mysqld\" --install MySQL --defaults-file=\"J:\\Programmi\\MySQL\\MySql Server 5.1\\my.ini\"" ;

try
{

using (Process ProcessoExe = Process.Start(processo))
{
ProcessoExe.WaitForExit();
}
}
catch
{

}
con questo arguments mi da errore mentre con quest'altro no:
processo.Arguments = "/c \"I:\\Documents and Settings\\fiocap\\Desktop\\Atalanta\\a.txt\"";

eppure i path sono scritti allo stesso modo. Aiuto.....
Grazie in anticipo.

alx_81 Profilo | Guru

>Ciao ragazzi,
Ciao

>con questo arguments mi da errore mentre con quest'altro no:
>processo.Arguments = "/c \"I:\\Documents and Settings\\fiocap\\Desktop\\Atalanta\\a.txt\"";
ti consiglio di identificare le stringhe con la chiocciola @, tipo @"stringa con caratteri speciali / \ ecc.." così eviti di raddoppiare le slash..
Al di là di questo, quale errore ottieni?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

NAPOLINET Profilo | Newbie

Buongiorno ragazzi,
dopo vari tentativi ho rinunciato e ho cambiato strada ottenendo il risultato voluto.
Praticamente creo un file .bat con il comando e lo eseguo, dopo l'esecuzione lo elimino.
Cmq prima non ottenevo errori ma essendo un comando errato non si avviava.
Grazie di tutto.

NAPOLINET Profilo | Newbie

Grazie ancora
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5