Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - comandi dos da c#
Forum - C# / VB.NET - comandi dos da c#

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 22:34
Domenica, 24/05/2009
ciao a tt
proprio oggi mentre stavo navigando in rete senza uno scopo preciso mi sono inbattuto nelle Alternate Data Streams e scoprendo che si posso creare con dei semplici comandi dos volevo costruire un utility in c# ma qui sorge il problema come posso eseguire questi comandi a c#??
type miofile.ext > filedacollegare.ext:miofile.ext
ho pensato a fare ciò
system.diagnostic.process.start ("cmd","type" + variabile1 + ">" + variabile1 + ":" + variabile2 )ma non va come posso fare??
grz

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 13:29
Lunedì, 25/05/2009
Il concetto e proprio come hai scritto tu, ma in modo errato
non basta semplicemente inviare un argomento al cmd

anche se in c++ e diverso.

prima del parametro desiderato devi inviare un azione

/c  = richiesta visiva, invia un parametro restituendone il risultato visivo e terminandolo

quindi in pratica dalla console basta semplicemente usare la shell cmd.exe
ed inviare esempio  /c dir

Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("cmd.exe","/c dir");
  2. Console.ReadKey();





PM Quote
Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 18:53
Martedì, 26/05/2009
si ecco il problema e che mi accetta solo tipe se scrivo + comandi + le variabili (contengono nomi di file) non va esempio :
system ..... ("cmd","/c type" /*tt ok*/ + variabile1 /*nn va*/) come faccio ?

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:12
Mercoledì, 27/05/2009
A me funziona perfettamente
prova in questo modo mettendo correttamente gli spazi e gli slash

Codice sorgente - presumibilmente C#

  1. const string test1 ="copy";
  2.             const string test2 ="C:\\test.vb";
  3.             const string test3 = "C:\\prova.vb";
  4.  
  5.             ProcessStartInfo processo = new ProcessStartInfo();
  6.             processo.CreateNoWindow = false;
  7.             processo.UseShellExecute = false;
  8.             processo.FileName  = "cmd.exe";
  9.             processo.Arguments = "/c " + test1 + " " + test2 + " " + test3;
  10.  
  11.             try
  12.             {
  13.  
  14.                 using (Process ProcessoExe = Process.Start(processo))
  15.                 {
  16.                     ProcessoExe.WaitForExit();
  17.                 }
  18.             }
  19.             catch
  20.             {
  21.  
  22.             }



prova dovrebbe andare perfettamente
lasciandoti nella console
il risultato dell’operazione


PM Quote
Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 21:09
Martedì, 09/06/2009
Ok grazie funziona alla perfezione .... senti ma se io volessi inviare comandi invece che a cmd a powershell e lo stesso uso /c ecc ?

EDIT: ehm ... no nn va come posso fare ?

Ultima modifica effettuata da jaco94++ il 09/06/2009 alle 21:10
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:09
Mercoledì, 10/06/2009
mi spiace,
ma su questo non credo di poterti aiutare su quest'argomento.

non conosco powershell.

ma a mio parere personale.
potresti usare il codecom per aggiungere script o plugin anzichè usare il powershell
così puoi personalizzarti anche gli argomenti da ricevere.


PM Quote