我希望我的程序能夠像Set-Location
命令一樣更改當前目錄。所以我的程序執行,然後我在命令提示符下看到一個不同的目錄。如何在C#中更改執行shell的目錄?
這不起作用:
Directory.SetCurrentDirectory(Scripts);
Environment.CurrentDirectory = Scripts;
這對於正在執行的進程,而不是執行shell目錄更改當前目錄。
我看到:
PS C:\Users\Test>test.exe
PS C:\Users\Test>
我要的是:
PS C:\Users\Test>test.exe
PS C:\Test>
是的,我從PowerShell中執行此,但我不希望有一個PowerShell腳本,我需要我的C#應用程序更改我的shell路徑,然後繼續相同的shell。當然,它也應該在cmd.exe中工作。
我想避免創建一個單獨的shell,而是我希望我的程序充當shell命令。如果您好奇它是一個配置管理器,它應該根據作爲命令參數給定的模板名稱配置腳本目錄,它應該將路徑更改爲配置的腳本目錄。
你不能做到這一點,你的進程只寫訪問自己的環境,它不能改變它的另一個進程 - 甚至催生了它的人。 –
這與您的問題有關嗎? https://stackoverflow.com/a/18875988/4301653 – raichiks
看看這個。 https://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory(v=vs.110).aspx 您的目錄是否存在? 如果您嘗試更改爲不存在的目錄,您將得到一個異常 –