我已經使用下面的代碼在我的java項目中創建了一個不可刪除的文件夾。它工作正常。當我創建我的項目的exe時,dos提示符不會消失。需要在不打開dos提示符的情況下運行該命令
cmd.exe /c start icacls "folder name" /e /c /d %username%
我也嘗試過不打開dos提示符。但它不起作用。
icacls ONGX32/winkrl /e /c /d %username%
我已經使用下面的代碼在我的java項目中創建了一個不可刪除的文件夾。它工作正常。當我創建我的項目的exe時,dos提示符不會消失。需要在不打開dos提示符的情況下運行該命令
cmd.exe /c start icacls "folder name" /e /c /d %username%
我也嘗試過不打開dos提示符。但它不起作用。
icacls ONGX32/winkrl /e /c /d %username%
我發現了一個簡單的方法。創建一個.bat臨時文件由該命令組成。使用該.bat文件。它沒有打開命令提示符。
而是使用:
cmd /c icacls "folder name" /e /c /d %username%
start
幾分一樣cmd /c
的,所以你不需要兩者。
變量%username%
被cmd.exe的值替換。
你需要用System.getenv("username")
得到它,並用命令字符串替換它自己。
編輯。您可能還需要使用icacls.exe的完整路徑。
在命令提示符下,命令exit
將其關閉。
您可以使用&&
命令分隔符運行multiple commands on one line。
應該是這樣的:
cmd /c icacls "folder name" /e /c /d %username% && exit
它拋出以下IOEXCEPTION「無法運行程序」開始「:CreateProcess錯誤= 2,系統找不到指定的文件」 – Manikandan
其實,我犯了一個錯誤。 'start'是一個cmd命令,不是可執行文件。你不需要'start',但你確實需要'cmd/c'。我正在更新上述記錄的答案。 – Sajid