zman path v C#

Programovacie jazyky, rady, poradňa...
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

zman path v C#

Príspevok od používateľa failExperiment »

Zdravím,
potrebujem spraviť v C# dačo takéto ako je tento bat súbor.

Kód: Vybrať všetko

path=%path%;cesta k priecinku/bin; dalsia cesta /bin
c:\daco\ina cesta\>program.exe -d file.txt 

Viem ako sa spusta iný proces, aj ako nastavím "c:\daco\ina cesta\" , problém mám s tým ako zmeniť dočasne path,
tak aby po vypnutí programu nezostala uložená a mohla obsahovať aj cesty ( potrebujem aspoň 2 ) ale aj z medzerami v názvoch priečinkov.
ServerApp
Zablokovaný
Zablokovaný
Príspevky: 125
Registrovaný: 16 sep 2011, 15:00

Re: zman path v C#

Príspevok od používateľa ServerApp »

Toto by malo pomôcť:
http://stackoverflow.com/questions/6999 ... in-c-sharp
Je tam working path, a rôzne veci aj k cmd.exe .

Z tej stránky sa dajú vyčítať minimálne 2 riešenia na tvoj problém. (C# triedy alebo cez cmd...)
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: zman path v C#

Príspevok od používateľa failExperiment »

Ja by som to radšej riesil čisto cez prostriedky C#.

To riešenie cez cmd ma stále problém s tým, ze cesta môže obsahovať medzeru a to neviem opraviť ani v bat súbore.

A to druhe WorkingDirectory nie je %path%, a ja potrebujem meniť najme ten.
Working directory je keď napíšeš do cmd pwd, a path je echo %path% .


Ja to riešim kvôli tomu aby som si spravil portaible aplikáciu, ktorá využíva externé exe-súbory ale tie pri volaní cez cestu vyhadzujú chyby, keď som prestavil path tak šli bez problémov.
ServerApp
Zablokovaný
Zablokovaný
Príspevky: 125
Registrovaný: 16 sep 2011, 15:00

Re: zman path v C#

Príspevok od používateľa ServerApp »

Ak sa nemýlim, PATH je systémová premenná, ktorá ide zmeniť v Windows CP. Takže, ak sa nemýlim, išlo by aj toto:
http://stackoverflow.com/questions/1852 ... ables-in-c
a
http://www.daniweb.com/software-develop ... ads/126971

(a toto iba ták - http://www.johnsmiley.com/cis18/Smiley037.pdf)
No a čo sa týka CMD, stačilo by toto? http://stackoverflow.com/questions/1851 ... batch-file a toto ak by si nechápal http://ss64.com/nt/set.html
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: zman path v C#

Príspevok od používateľa harrison314 »

Skus toto:

Kód: Vybrať všetko

Process p= new Process();
		string startDir =@"E:\flexbison\bison2\bin";
		string workingDir =@"C:\Documents and Settings\-\Desktop";
		string file ="calc.y";
	
		
		p.StartInfo.EnvironmentVariables["PATH"] =   Environment.GetEnvironmentVariable("path")+";"+startDir;
		p.StartInfo.WorkingDirectory = workingDir;
		p.StartInfo.Arguments = string.Format(" -d \"{0}\"",file);
		p.StartInfo.CreateNoWindow = true;
		p.StartInfo.UseShellExecute = false;
		p.StartInfo.FileName = System.IO.Path.Combine(startDir,"bison.exe");
		p.StartInfo.RedirectStandardError = true;
		p.Start();
		while(p.StandardError.Peek()!=-1) Console.Write((char)p.StandardError.Read());
		p.WaitForExit();
		Console.WriteLine("skoncene z {0}\n",p.ExitCode);
ServerApp
Zablokovaný
Zablokovaný
Príspevky: 125
Registrovaný: 16 sep 2011, 15:00

Re: zman path v C#

Príspevok od používateľa ServerApp »

To je vlastne využitie mojich prvých dvoch linkov. Nie?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: zman path v C#

Príspevok od používateľa harrison314 »

ServerApp napísal:To je vlastne využitie mojich prvých dvoch linkov. Nie?
Nie, nie je Enviromet.SetVariable ti ju meni natrvalo (zmena je okamzite viditelna aj z vonku).
Zatial co proces.StartInfo.EnvironmentVariables ich nastavi iba pre spustany proces.
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: zman path v C#

Príspevok od používateľa failExperiment »

@harrison - konečne to ide, tak ako som si to predstavoval, iba keď je v nazve priečinku path medzera tak mi to nejde
ServerApp
Zablokovaný
Zablokovaný
Príspevky: 125
Registrovaný: 16 sep 2011, 15:00

Re: zman path v C#

Príspevok od používateľa ServerApp »

čo som pozeral, malo by.
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: zman path v C#

Príspevok od používateľa failExperiment »

ServerApp@ skúšal som aj to ale tiež to nefunguje z medzerou, netreba ju nejak oescapovat alebo podobne ?
Napísať odpoveď