大多數用戶還是習慣使用 Windows 自帶的文件資源管理器來管理文件,於是我們可以利用它的命令行參數來幫助我們做一些與之相關的交互。
本文會以實際的例子來說明如何使用 explorer.exe 的命令行參數。
打開文件
在命令行中輸入 explorer D:\Services\blog.walterlv.com\test.txt
即可打開 test.txt
文件。不過,這個時候是間接使用文件資源管理器打開的文件,效果跟我們直接在文件資源管理器中雙擊打開這個文件的效果是一樣的。
啓動程序
實際上利用文件資源管理器啓動程序和前面的打開文件是同一種命令,不過我特別拿出來說,是因爲使用這種方式來啓動程序還有一種特別的功效:
- 可以降權執行
使用方法:
explorer D:\Services\blog.walterlv.com\Walterlv.Blog.Home.exe
如果你當前進程是管理員權限,那麼可以通過 explorer
間接啓動將新啓動的進程降低到與 explorer
同級別的權限。
不過,有幾點需要注意的:
- 如果用來降權,那麼只會降到與文件資源管理器同級別的權限
- 而文件資源管理器是什麼權限在 Windows 7 上和 Windows 8/8.1/10 上不同
- Windows 8/8.1/10 無論開關 UAC 都是普通用戶權限,除非你特別使用任務管理器(Task Manager)以管理員權限啓動文件資源管理器
- Windows 7 在開啓 UAC 的情況下,文件資源管理器是以普通用戶權限運行的
- Windows 7 在關閉 UAC 的情況下,文件資源管理器是以管理員權限運行的
- 不允許給間接啓動的程序攜帶命令行參數
- 如果你試圖傳入額外的參數,那麼最終不會執行這個程序,只會打開一個根你的程序毫無關係的文件管理器的新窗口而已
explorer
必須是已經啓動的狀態(大多數時候都是這樣)
關於利用文件資源管理器降權執行程序的內容,可以閱讀我的另一篇博客:
關於 UAC 權限相關的內容,可以閱讀我的另一篇博客:
如果你使用 .NET 程序來完成啓動程序的話,可能需要關注 UseShellExecute
。不過利用 explorer
間接啓動就無所謂了,無腦設置爲 false
就好,因爲它自己就相當於 Shell。
打開某個文件夾
explorer D:\Services\blog.walterlv.com
選擇某個文件
在與其他工具集成的時候,如果有需求要打開某個文件夾,並自動滾動到希望看到的文件選中它,那麼這個命令非常有用:
explorer /select,"D:\Services\blog.walterlv.com\Walterlv.Blog.Home.exe"
這可以在打開文件資源管理器的同時,選中 Walterlv.Blog.Home.exe
文件,並將它滾動到可視區域。
其他命令行參數
在以上這些命令的基礎上,可以添加一些可選參數用來控制如何執行這些命令。
/separate
- 讓文件資源管理器在一個新的進程中打開
一些特殊文件夾的命令
打開當前工作路徑的根目錄:
> explorer \
打開“文檔”文件夾:
> explorer \\
# 或者
explorer /
打開“計算機”文件夾:
# 注意,此命令在 CMD 中可以直接執行,在 PowerShell 中需要加上引號,即 ","
explorer ,
參考資料
- How to run Windows Explorer as a different user (so I can do admin work) – Florin Lazar – Consistency Checkpoint
- How to launch Windows Explorer with the privileges of a different domain user? - Super User
我的博客會首發於 https://blog.walterlv.com/,而 CSDN 會從其中精選發佈,但是一旦發佈了就很少更新。
如果在博客看到有任何不懂的內容,歡迎交流。我搭建了 dotnet 職業技術學院 歡迎大家加入。
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含鏈接:https://walterlv.blog.csdn.net/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫。