如何从 Windows PowerShell 中的 doskey 别名获取完整命令

2023-12-10

我使用的是 Windows PowerShell,它是使用 doskey 宏进行配置的。 我有一个名为Macros.doskey.

105=code E:\static5\105
135=code E:\static5\135
static5=code E:\static5

如何获取别名对应的命令?

例如,当我输入105在 PowerShell 中它将执行命令code E:\static5\105

现在我想知道如何从别名中获取命令。


  • doskey是一个实用程序主要设计用于与cmd.exe,不是 PowerShell.

    • PowerShell 以别名和函数的形式内置了更好的功能,在 Windows 10 中,您甚至必须停用 PowerShell 自己的命令行编辑才能获得doskey去工作(见下文)。
  • 如果您还想使用doskey在PowerShell中,有两个先决条件:

    • The PSReadLine module - which handles command-line editing since Windows 10 by default - must not be loaded, as it takes precedence over doskey definitions[1]; that is, you may need to unload it explicitly with Remove-Module PSReadLine, but that means that you'll lose all of its benefits.

    • 您必须调用任何doskey.exe宏定义与/exename=powershell.exe(Windows PowerShell) 或/exename=pwsh.exe(PowerShell Core)以便可以从 PowerShell 使用它们。

      • 注意此时是doskey扩展用户输入的宏名称,这意味着 PowerShell 只能看到expanded命令,因此不知道宏名称。因此,试图检查doskey宏与
        Get-Command行不通;检查输出doskey /macros相反,如李·戴利的回答.

      • Additionally, doskey also resolves macros when soliciting arbitrary user input via Read-Host[1], which is undesired.


总结一下不使用的原因doskey在 PowerShell 中:

  • 它不能与PSReadLine模块,自 Windows 10 起默认处理命令行编辑并提供宝贵的功能。

  • doskey宏观扩张总是also当脚本通过以下方式请求任意用户输入时发生Read-Host,这是不希望的。


因此,我建议你abandon doskey支持 PowerShell功能,并将它们添加到您的$PROFILE file以便它们在每个会话中都可用:

  • 当你can定义以数字命名的函数,例如105在 PowerShell 中,您必须使用以下命令调用它们&以便与实际数字消除歧义,例如,& 105.

  • 因此,我建议重构你的方法定义一个single函数命名为,c,这需要一个可选的argument确定要打开的文件:

function c { pushd E:/static5; code $(if ($Args) { $Args } else { '.' }); popd }

你原来的doskey然后宏映射到该函数,如下所示:

  • 105 -> c 105
  • 135 -> c 135
  • static5 -> c

请注意,这不仅允许您传递任意文件名(位于E:/static5/) 发挥作用c,但即使multiple那些;例如。,c 105 135会打开both供编辑的文件。

检查函数的定义c稍后,您只需调用$function:c或者,更详细地说,(Get-Command c).Definition.


[1] As PetSerAl notes: "doskey performs translations on the console input buffer. [...]. It does not work if the console is not in line input mode, thus it is not compatible with PSReadline, although Read-Host will be affected.
https://i.stack.imgur.com/HpYzq.png"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Windows PowerShell 中的 doskey 别名获取完整命令 的相关文章

  • Powershell:启动进程不将参数传递给 cmd.exe

    这些是在 powershell 控制台 Windows 10 中运行的命令 username Username password Password securePassword ConvertTo SecureString password
  • PowerShell 找不到过载

    我正在尝试使用https sshnet codeplex com https sshnet codeplex com 允许 PowerShell 脚本将文件上传到 SFTP 服务器 一切似乎都有效 除了找不到该方法的重载UploadFile
  • PowerShell 中的“nohup”相当于什么?

    如何模拟 unix 命令的行为nohup在 PowerShell 中 那是nohup my other nonblocking command 我注意到Start Job命令 但是语法对我来说有点不清楚 gt Start Job my ex
  • 通过 PowerShell 对 TFS 构建进行排队

    TFS2012 具有一个 2010 构建控制器和一个 2010 构建代理 还有一个 2012 构建控制器和多个 2012 构建代理 我们的软件有多个版本的多个版本 构建根据约定命名 例如Foo version 1 0 和 Foo versi
  • Powershell SQL Server数据库连接和连接超时问题

    我有一个连接到 SQL Server 2012 数据库的 powershell 脚本 该脚本运行 SQL 查询并将结果集放入数据表中 以将格式化的电子邮件发送给相关方 下面是问题所在的代码片段 CBA New Object System D
  • 如何扩展和重写集合类中的 Add

    背景 我在 PowerShell 中有一个具有 4 个属性的数据对象 其中 3 个是字符串 第 4 个是哈希表 我想安排一个新类型 将其定义为该数据对象的集合 在这个集合类中 我希望强制执行一种特定的格式 这将使我在模块中其他地方的代码更加
  • 如何在 PowerShell 中比较本地文件与 FTP 服务器上的文件的年龄并下载远程复制是否较新

    我正在编写一个 PowerShell 脚本 以帮助我为工作设置新电脑 希望这不仅仅是我一个人会使用 所以我正在尝试考虑所有事情 我在 FTP 服务器上保存了离线安装程序 java flash reader 等 如果本地副本尚未保存在创建的
  • Powershell tail 多个文件命令

    我可以通过以下命令尾随一个文件 Get Content Path C log1 txt Tail 10 Wait 如何将其扩展到多个文件 我尝试了以下方法但没有成功 Get Content Path C log1 txt C log2 tx
  • Powershell日期类型无法找到

    我正在尝试使用PowerShell连接virustotal API 代码来自virustotal网站 我得到 无法找到类型 System Security Cryptography ProtectedData 错误信息 代码如下 funct
  • 我的 Powershell GUI 界面在打开网格视图时不断调整大小

    我目前正在构建一个复制到剪贴板工具 其中显示存储在文件夹中的 txt 文件列表 并且我使用 out gridview 来允许用户更好地选择和过滤列表 我已附上图片以供参考 单击加载 out gridview 的按钮后如何停止调整大小 Too
  • 在 Visual Studio 2017 的现有实例中打开文件

    我曾经能够在 VS 的现有实例中打开文件 devenv exe had a dde为此切换 但在 VS2017 中 它会在新实例中打开文件 而不是在已经运行的实例中 例如对于 json 文件 我的注册表有一个密钥HKEY CLASSES R
  • 如何从 C# 运行 PowerShell 脚本

    我正在尝试使用 C 运行 PowerShell 脚本 但没有成功 这是我的功能 private void ExecutePowerShellCommand string scriptfile RunspaceConfiguration ru
  • 有没有办法在 MS Windows(Powershell 或 CMD)的 ripgrep 中转义引号?

    我想找一个字符串 Hello Hello 以双引号开头 在文本文件中使用ripgrep 通常 在 Bash 或 ZSH 中 这可以通过用反斜杠转义或用单引号括起来来实现 rg Hello rg Hello 然而 在 MS Windows P
  • 如何从 -WhatIf 处理中排除块?

    我正在编写一个 Powershell cmdlet 它需要执行命令并将其 stderr 输出存储到临时文件中以供以后处理 此输出列出了 cmdlet 稍后可能使用的 COM 端口 mostly side effect free inform
  • 如何在 IIS 10 上禁用 HTTP/2

    IIS 10 声称完全支持 HTTP 2 我想知道是否有办法在 IIS 10 上关闭 HTTP 2 要在 Windows 10 HTTP SYS 上禁用 HTTP 2 请在 Windows 10 桌面上的 HKEY LOCAL MACHIN
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • Powershell v2 远程处理和委派

    我在两台机器上安装了 Powershell V2 并在两台机器上运行 Enable PsRemoting 两台机器都是Win 2003 R2 并且都加入了同一个活动目录域 我可以成功地远程运行命令 所以PS远程处理是在本地服务器和远程服务器
  • Powershell 将单个字符串与多个正则表达式匹配?

    除了依次迭代每个正则表达式之外 是否有一种更 powershelly 的方式将单个字符串与正则表达式的数组 集合进行匹配 我真正想做的是这样的 database Name match includeRegexArray 考虑到 Powers
  • 通过 PowerShell 运行 .cmd 文件

    我正在尝试使用 PowerShell 在远程服务器上运行 cmd 文件 在我的 ps1 脚本中我尝试过 C MyDirectory MyCommand cmd 它会导致此错误 C MyDirectory MyCommand cmd is n
  • PowerShell:函数没有正确的返回值

    我编写了一个 powershell 脚本来比较两个文件夹的内容 Dir1 d TEMP Dir1 Dir2 d TEMP Dir2 function Test Diff Dir1 Dir2 fileList1 Get ChildItem D

随机推荐

  • 如何从两个 Openshift 应用程序访问 MongoDB 数据库?

    我希望能够从 2 个 Openshift 应用程序访问我的 MongoDB 数据库 一个应用程序是通过浏览器的交互式数据库维护应用程序 另一个是通过 Openshift 应用程序在移动设备上运行的主要 Web 应用程序 正如我在 Opens
  • 通过 Java lib Apache Commons 上传文件的简明示例

    编辑 我已经删除了我的复杂且严重畸形的问题 这样它就不会影响下面非常简洁和正确的答案 考虑到找到一个在线示例来完成这项极其常见的任务非常困难 令人惊讶 我希望 Yoni 的回答能得到更多支持 所以 简而言之 这个问题 如何使用 Apache
  • Firebase 已获得 FedRAMP 授权?

    我使用 Firebase 作为后端 我看到谷歌服务已获得FedRAMP授权 并且firebase已与谷歌云集成使用 那么firebase也获得了FedRAMP的授权吗 如果没有 有什么办法可以在firebase中获得FedRAMP授权吗 T
  • 使用 PHPExcel 从 Excel 读取数字时出现问题

    我正在尝试使用 PHPExcel 从 Excelsheet 中读取数字 我读取数据的代码 objReader PHPExcel IOFactory createReaderForFile upload file objReader PHPE
  • 带原始数据的 Volley 请求

    在我的应用程序中 我必须使用 JSON req param 发送 POST 请求 我尝试使用 Postman Rest Client 创建请求 它工作正常 但无法使用下面的代码 在作为原始数据发送的 Postman req 参数中 但我不确
  • R XML 解析网址

    我正在尝试下载天气数据 类似于此处提出的问题 如何将XML解析为R数据帧但是当我运行示例中的第一行时 我收到 错误 1 无法加载 HTTP 资源 我已检查该 URL 是否有效 这是我指的行 data lt xmlParse http for
  • 如何确定目录中的任何文件是否已更改

    Chef 有没有办法确定它是否更改了给定目录中的任何文件 如果conf d 目录中的任何设置被更新 我想重新启动服务器进程 我确信可以在每次厨师客户端运行时将 md5sum 列表写入文件 并将当前迭代与之前的迭代进行比较 但这是解决常见场景
  • 错误 DEP0001:意外错误:-2147009287 部署 Windows Phone Universal 10

    当我尝试将应用程序部署到 Windows Phone 10 时 出现以下错误 错误 2147009287 来自 Visual Studio 2015 社区 我该如何解决这个问题 正如 Jay Zuo 在他的评论中所说 通过链接 解决此问题的
  • 使用 Gradle 编译项目时 IntelliJ 到底在做什么?

    IntelliJ IDEA 2016 3 添加了将构建 运行委托给 Gradle 的功能 很明显 当 Gradle 上有委托选项时 Gradle 就会执行所有操作 我的问题是 当此选项关闭时 IntelliJ 到底在做什么 我问这个问题是因
  • 将 xls 文件从 url 下载到数据框(Rcurl)中?

    我正在尝试将以下网址下载到 R 数据框中 http www fantasypros com nfl rankings qb php export xls 这是公共页面上的 导出 链接 http www fantasypros com nfl
  • 使用 HTML 或 JavaScript 在 WhatsApp 网页版上发送消息

    我想通过 Whatsapp 网络发送消息 我正在使用以下代码 但它不起作用 https wa me text urlencodedtext 我无法查看联系人列表来发送此编码消息 我参考了 WhatsApp com如何使用点击聊天 尝试更改域
  • SQL - 加载数据内文件 - UTF8 问题

    我很少将大型数据库导出到 txt 每个大约 5GB 所以我发现我可以轻松导入它 将数据本地 INFILE path pet txt 加载到表 pet 它工作得很好 但我在那里遇到 UTF 8 的问题 因为有些文本显示为 PODB H Z L
  • F# 中的通用类型注释

    我收到以下错误 错误 2 值限制 价值 gbmLikelihood 已被推断为具有泛型类型val gbmLikelihood float gt a gt float gt float when a gt seq
  • 将 Excel UDF 放入 Worksheet 对象中(而不是放在模块中)

    我怀疑答案是 不可能 但是询问这个优秀的社区总没有坏处 我有一个 Excel 2013 UDF 用户定义函数 它对于某个工作表来说是唯一的 目前 我将此 UDF 放在包含工作簿的 模块 中 但我想做的是将 UDF 代码放置在 工作表对象 中
  • 数据仓库的日历表

    对于我的数据仓库 我正在创建一个日历表 如下所示 SET NOCOUNT ON DROP Table dbo Calendar GO Create Table dbo Calendar CalendarId Integer NOT NULL
  • Intel x86 手册中是否存在诸如直接/间接寻址模式之类的术语

    为了提供一些背景知识 我想研究如何手动编码 解码 x86 指令 我遇到了ModR M and SIB字节 似乎理解 x86 寻址模式是理解指令编码方案的基础 因此 我在 Google 上搜索了 x86 寻址模式 搜索返回的大多数博客 视频都
  • 如何在 MEAN 堆栈中调试 Mongoose 和 MongoDB?

    我正在学习 MEAN 堆栈并且正在使用npm start运行我的应用程序 我对 Mongoose 和 MongoDB 有一些问题 但我得到的只是POST page 500 63 925 ms 961 这是我的应用程序的目录结构 基于本教程
  • 选择使用动态生成的表名

    我有以下问题 我的桌子 geo table 结构如下 foreign table id foreign table name some other fields foreign table name存储不同表的名称和foreign tabl
  • Dns.GetHostEntry 是否可以返回带有空地址列表的 IPHostEntry?

    我只是想知道是否存在主机名可以成功解析但返回的 hostEntry AddressList 为空的情况 目前我正在做这样的事情 IPHostEntry hostEntry Dns GetHostEntry some hostname tld
  • 如何从 Windows PowerShell 中的 doskey 别名获取完整命令

    我使用的是 Windows PowerShell 它是使用 doskey 宏进行配置的 我有一个名为Macros doskey 105 code E static5 105 135 code E static5 135 static5 co