Command-Line-Interface
命令行腳本問題
幾週以來,我一直在研究批處理文件腳本,它應該可以自動執行我在工作期間需要執行的某些日常任務。但是,我偶然發現了一個我還沒有弄清楚的問題。
我正在使用帶有腳本和其他一些軟體(.exe)的 USB 記憶棒。該腳本要求您以管理員模式執行它,以便它可以訪問某些服務,例如 Windows 時間服務或 Windows 更新服務…
現在我注意到當你以管理員模式執行腳本時,它的起始目錄是 C:\Windows\System32
在這個腳本中,我希望執行一個也在棒上的程序。但是它沒有找到這個程序。我可以將路徑寫到棍子上的確切位置。但這行不通,因為該棒在不同的電腦上使用,並且驅動器號並不總是匹配。
長話短說,我正在尋找一種以管理員模式執行批處理文件(位於 USB 設備上)並讓該腳本自動執行程序(也在 USB 設備上)的方法。
提前致謝!登普西
PS:如果可能的話,有人能夠解釋我如何讓腳本將所有內容記錄到文本文件中嗎?請記住,腳本中有很多命令。將所有輸出記錄到一個文本文件並保存在同一個 USB 設備上會很好。
將這些行添加到腳本的頂部:
@setlocal enableextensions @cd /d "%~dp0"
第一行啟用環境變數,第二行是一個特殊變數,它引用正在啟動的腳本的目前目錄。
這是使用者wilx 在此答案中的一個很好的細分:
cd -- This is change directory command. /d -- This switch makes cd change both drive and directory at once. Without it you would have to do cd %~d0 & cd %~p0. %~dp0 -- This can be dissected further into three parts: %0 -- This represents zeroth parameter of your batch script. It expands into the name of the batch file itself. %~0 -- The ~ there strips double quotes (") around the expanded argument. %dp0 -- The d and p there are modifiers of the expansion. The d forces addition of a drive letter and the p adds full path.