专栏首页walterlv - 吕毅的博客Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)

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

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 必须是已经启动的状态(大多数时候都是这样)

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

关于 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 ,

参考资料

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/command-line-usage-of-windows-explorer.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,或者前往 CSDN 关注我的主页

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (walter.lv@qq.com)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 将 Windows Terminal 作为外部工具集成到其他工具/程序/代码中

    Windows Terminal 在 Windows 上是一款 UWP 应用,然而其依然具有良好的与外部工具的集成特性,你可以在其他各种工具中配置使用 Wind...

    walterlv
  • Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXI

    发布于 2020-01-08 14:13 更新于 2020-01...

    walterlv
  • 使用一句 git 命令将仓库的改动推送到所有的远端

    git 支持一个本地仓库包含多个远端(remote),这对于开源社区来说是一个很重要的功能,可以实时获取到最新的开源代码且能推送到自己的仓...

    walterlv
  • 我花了两年,从不懂Python变成了AI工程师

    有一位小哥,从不知道Python到找到AI工程的工作,用时两年。他的文章在网上获得了5000多条点赞。

    CDA数据分析师
  • 测试驱动开发(TDD)及测试框架Mocha.js入门学习

      组里马上要转变开发模式,由传统的开发模式(Developer开发,QA测试),转变为尝试TDD(Test-driven development,测试驱动开发...

    宋凯伦
  • Glove和fastText

    本文介绍两种更新一点的词向量,它们分别是2014年由Stanford团队发表的Glove和2017年由Facebook团队发表的fastText

    mathor
  • CSS布局

    普通流是默认定位方式,在普通流中元素框的位置由元素在html中的位置决定,元素position属性为static或继承来的static时就会按照普通流定位,这也...

    贺贺V5
  • CSS定位概述

    如果对一个元素进行相对定位,它将出现在它所在的位置上,然后可以通过设置垂直或者水平位置,让这个元素“相对于”它原来的位置进行移动,这时元素依然占据原来的位置,但...

    菜的黑人牙膏
  • jquery 本地存储 cookie 的基本用法

    本地存储分为cookie,以及新增的localStorage和sessionStorage 。本篇章专门来讲讲 cookie

    Devops海洋的渔夫
  • 算法:最短路径之弗洛伊德(Floyd)算法

    为了能讲明白弗洛伊德(Floyd)算法的主要思想,我们先来看最简单的案例。图7-7-12的左图是一个简单的3个顶点的连通网图。 ? 我们先定义两个二维数组D[3...

    s1mba

扫码关注云+社区

领取腾讯云代金券