Avatar billede casualty Nybegynder
27. oktober 2004 - 10:48 Der er 23 kommentarer og
1 løsning

start af process fra C#

Hej... jeg har en applikation som tager en weblogfil fra min webserver, rydder op i filen samt gemmer den et nyt sted... Det virker fint... man starter programmet fra en prompt med parametre der angiver hvor originalfilen ligger samt hvor den nye skal ligge således: xxx.exe c://log.log > C://nylog.log..

Problemet er at når jeg gerne vil starte denne fil som en proces fra C# så gemmer den ikke logfilen...

Jeg starter processen med Process.Start("filnavn",args);

Mvh Casualty
Avatar billede arne_v Ekspert
27. oktober 2004 - 11:00 #1
Er args defineret som:

string[] args = { "C:\\log.log", ">", "C:\\nylog.log" };

?
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:01 #2
Kort og godt... Hvis jeg selv starter programmet i en prompt:
moveLog.exe C:/log.exe > C:/newLog.exe

Så virker det

men hvis jeg kører det fra C#:
Process.Start("C:/moveLog.exe","C:/log.exe > C:/newLog.exe");

Så virker det ikke... Den nye logfil dukker ganske enkelt aldrig op???
Er det en sikkerhedsting?

Mvh Casualty
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:03 #3
Måske forvirrede jeg lidt ved at skrive "args"

Process.Start tager ingen steder et String[] som argument
Avatar billede finger Nybegynder
27. oktober 2004 - 11:06 #4
der er en klasse jeg mener hedder procesinfo eller processartinfo eller lign som du kan benytte til dette. denne tager args. klassen kan benyttes i en constructor til Process.Start
Avatar billede arne_v Ekspert
27. oktober 2004 - 11:07 #5
Du har ret. Jeg tænker vist Java Runtime.getRuntime().exec().

Kan du ikke lige prøve at vende de slasher rigtigt ?

Måske gør CMD noget smart med dem.
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:09 #7
ProcessStartInfo(String filename,String arguments)
ProcessStartInfo(String filename)
ProcessStartInfo()

Er det eneste den kan...

ellers er det

Process.Start(ProcessStartInfo processStartInfo)
Process.Start(String filename,String arguments)
Process.Start(String filename)
Avatar billede finger Nybegynder
27. oktober 2004 - 11:11 #8
ah, sorry. misforstod spørgsmålet.
Avatar billede arne_v Ekspert
27. oktober 2004 - 11:12 #9
Har du prøvet:

Process.Start("C:\\moveLog.exe","C:\\log.exe > C:\\newLog.exe");

?
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:13 #10
Nej det er ikke slasherne.... Er der forskel på om jeg starter applikationen i en prompt, eller om C# starter den?? Måske noget med rettigheder?
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:14 #11
Ja det har jeg lige prøvet.. det virker ikke
Avatar billede arne_v Ekspert
27. oktober 2004 - 11:24 #12
app : nej
web app : ja
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:32 #13
Det er en alm app
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:45 #14
Jeg er kommet så langt at jeg har fundet ud af at:

Process.Start("C:\\moveLog.exe","C:\\log.exe > C:\\newLog.exe");

Den opfatter "C:\\log.exe > C:\\newLog.exe" som én parameter
Avatar billede sw_red_6 Nybegynder
27. oktober 2004 - 11:49 #15
prøv at kigge på hvordan arne har skrevet det i hans første kommentar
Avatar billede casualty Nybegynder
27. oktober 2004 - 11:55 #16
Det med array?
Avatar billede sw_red_6 Nybegynder
27. oktober 2004 - 11:59 #17
jeg mente det der står i { }
Jeg ved ikke om det er muligt at bruge mere en 1 argument til Process.Start("filnavn",args); men det kan næsten se ud som at du skal dele "C:\\log.exe > C:\\newLog.exe" op som arne har gjort i det array
Avatar billede arne_v Ekspert
27. oktober 2004 - 12:06 #18
Prøv lige:

Process.Start("cmd", "/c C:\\moveLog.exe C:\\log.exe > C:\\newLog.exe");
Avatar billede casualty Nybegynder
27. oktober 2004 - 12:50 #19
sw_red_6>> Jeg kan godt se din pointe. men det kan ikke lade sig gøre da process.Start ikke kan modtage et Array som parameter...
Avatar billede casualty Nybegynder
27. oktober 2004 - 12:52 #20
arne_v >> prøver lige
Avatar billede casualty Nybegynder
27. oktober 2004 - 12:57 #21
Fantastisk... det virkede... Kan du forklare hvad der sker... Jeg fatter godt at man starter cmd med applikationen som parameter men hvad betyder /c ?

1000 Tak for hjælpen, læg et svar...

(ps: Sidder du altid ved eksperten? Jeg synes at det er uanset hvornår man skriver så er du på??)

Mvh Casualty
Avatar billede arne_v Ekspert
27. oktober 2004 - 13:01 #22
Jeg tror at det er cmd som forstår at fortolke > korrekt og ikke din EXE.

/c betyder vist bare at cmd skal lukke når kommandoen er udført.
Avatar billede arne_v Ekspert
27. oktober 2004 - 13:01 #23
svar
Avatar billede arne_v Ekspert
27. oktober 2004 - 13:02 #24
Jeg bruger nok for meget tid på E !

:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester