当前位置: 首页 > news >正文

Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)

大多数用户还是习惯使用 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 同级别的权限。

不过,有几点需要注意的:

  1. 如果用来降权,那么只会降到与文件资源管理器同级别的权限
    • 而文件资源管理器是什么权限在 Windows 7 上和 Windows 8/8.1/10 上不同
    • Windows 8/8.1/10 无论开关 UAC 都是普通用户权限,除非你特别使用任务管理器(Task Manager)以管理员权限启动文件资源管理器
    • Windows 7 在开启 UAC 的情况下,文件资源管理器是以普通用户权限运行的
    • Windows 7 在关闭 UAC 的情况下,文件资源管理器是以管理员权限运行的
  2. 不允许给间接启动的程序携带命令行参数
    • 如果你试图传入额外的参数,那么最终不会执行这个程序,只会打开一个根你的程序毫无关系的文件管理器的新窗口而已
  3. explorer 必须是已经启动的状态(大多数时候都是这样)

关于利用文件资源管理器降权执行程序的内容,可以阅读我的另一篇博客:

  • 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限) - walterlv

关于 UAC 权限相关的内容,可以阅读我的另一篇博客:

  • Windows 中的 UAC 用户账户控制 - walterlv
  • Windows 的 UAC 设置中的通知等级实际上只有两个档而已 - walterlv

如果你使用 .NET 程序来完成启动程序的话,可能需要关注 UseShellExecute。不过利用 explorer 间接启动就无所谓了,无脑设置为 false 就好,因为它自己就相当于 Shell。

  • C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? - walterlv

打开某个文件夹

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/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能
  • 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator)
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
  • 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象?
  • WPF 中如何创建忽略 DPI 属性的图片
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXI
  • 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持
  • 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx)
  • 为 ASP.NET Core 程序制作 URL 的 301/302 跳转
  • 使用 Frp 为你的 Web 服务添加 https 支持
  • 全民 https!使用 FreeSSL 申请免费的 https 证书
  • 如何设置 ASP.NET Core 程序监听的 IP 和端口
  • 收集的 Linux VPS 在线重装系统脚本
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Date型的使用
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Golang-长连接-状态推送
  • in typeof instanceof ===这些运算符有什么作用
  • Java深入 - 深入理解Java集合
  • leetcode讲解--894. All Possible Full Binary Trees
  • Python十分钟制作属于你自己的个性logo
  • React系列之 Redux 架构模式
  • vuex 学习笔记 01
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 闭包,sync使用细节
  • 从输入URL到页面加载发生了什么
  • 基于Android乐音识别(2)
  • 面试遇到的一些题
  • 前端面试之闭包
  • 前端设计模式
  • 日剧·日综资源集合(建议收藏)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 数据结构java版之冒泡排序及优化
  • 小程序01:wepy框架整合iview webapp UI
  • 小程序button引导用户授权
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Spring Batch JSON 支持
  • ​学习一下,什么是预包装食品?​
  • # .NET Framework中使用命名管道进行进程间通信
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #### go map 底层结构 ####
  • #100天计划# 2013年9月29日
  • #DBA杂记1
  • #Linux(帮助手册)
  • #控制台大学课堂点名问题_课堂随机点名
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (差分)胡桃爱原石
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (转)【Hibernate总结系列】使用举例
  • (转)linux 命令大全
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**