2017-10-22 6 views
0
Takeown /f D:\Windows /r /D Y 

Takeown /f "D:\Program Files" /r /D Y 

Takeown /f "D:\Program Files(x86)" /r /D Y 

Attrib -s -r -h D:\ProgramData 

Takeown /f D:\ProgramData /r /D Y 

Icacls D:\Windows /grant %Username%:F /t /c 

Icacls "D:\Program Files" /grant %Username%:F /t /c 

Icacls "D:\Program Files(x86)" /grant %Username%:F /t /c 

Icacls D:\ProgramData /grant %Username%:F /t /c 

私は後で例えば、文字列として、各コマンドにアクセスもを取得できるようにしたい:私が作ることができこのコマンドの文字列配列を作成するにはどうすればよいですか?

"Icacls "D:\Program Files(x86)" /grant %Username%:F /t /c" 

string[] params = new string[] {....}; 

しかし、私が台無しになっています"D:\ Program Files"

これまでに私はこれを試した:

string[] commands = new string[] { 
     "Takeown /f D:\\Windows /r /D Y", "Takeown /f ""D:\Program Files""\ /r /D Y"}; 

しかし、一部のエラーを取得: "D:\プログラムファイル" "\/R/DY"

構文エラー、 '' 認識できないエスケープシーケンス エラーが予想される '' 期待認識されないエスケープシーケンス

+1

あなたは何を試しましたか、直面している問題は何ですか? – Shyju

+0

[どのようにして逐語的な文字列でエスケープできますか?](https://stackoverflow.com/questions/17168961/how-do-i-escape-in​​-verbatim-string) –

答えて

3

二重引用符が文字列マークアップと衝突するため、エスケープする必要があります。 \を前に追加すると、二重引用符(他の特殊記号と同様)をエスケープできます。例:var str = "foo \"bar\""string[] parameters = new string[] { "Icacls \"D:\Program Files(x86)\" /grant %Username%:F /t /c" };

P.S.:次のようになり、あなたの文脈では

paramsは予約済みのキーワードであり、変数名として使用することはできません。

関連する問題