PowerShell 在执行命令时询问 "How do you want to open this file"
PowerShell asks "How do you want to open this file" when executing command
从 Windows 11 升级后,Select-String cmdlet 停止工作,每次我使用它时,它都会尝试“打开未知文件”,如下图所示:
我在尝试从批处理文件 运行 我的一个 ps 脚本时发现了它 - 在 Win 10 中它运行良好,但在 Win 11 中它没有。当我 运行 VSCode 中的代码时,它工作正常,我不知道为什么。
我尝试将文本从 VSCode(如果编码不同)复制到一个新文件并直接复制到 PowerShell 终端,但其中 none 有效。
我也尝试了新的 Windows 11 终端并将 PowerShell 更新到最新版本 (7.2.2 x64),但没有任何效果。
Dis/Enabling Windows PowerShell 2.0 的系统函数在这种情况下也没有效果。
编辑:
我发现如果我在脚本开头 运行 命令 Update-Script
(没有任何参数), Select-String
会按预期工作(在此之前该 cmdlet 似乎根本不存在 - Get-Help Select-String
没有找到任何东西,但在使用 Update-Script
后它找到了适当的帮助)。其他一些命令也是如此(例如 Trace-Command
)。查看输出:
PS C:\> Get-Command Select-String
CommandType Name Version Source
----------- ---- ------- ------
Application Select-String 0.0.0.0 C:\WINDOWS\system32\Select-String
PS C:\> Update-Script
PS C:\> Get-Command Select-String
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Select-String 3.1.0.0 Microsoft.PowerShell.Utility
Trace-Command
“使”Select-String 像 Update-Script
一样正常工作并给出以下输出:
DEBUG: CommandDiscovery Information: 0 : Looking up command: Select-String
DEBUG: CommandDiscovery Information: 0 : Cmdlet found: Select-String Microsoft.PowerShell.Commands.SelectStringCommand
hello everybody!
为什么我必须这样做(调用 Update-Script
),而 Select-String
没有它也能正常工作?
嗯,有很多关于powershell“你想如何打开这个文件”的讨论(没有真正解决),但最后,这是我的问题:
解决方案:
删除文件 c:\Windows\System32\Select-string(0 字节,无文件扩展名)。我不知道它是怎么到那里的...
从 Windows 11 升级后,Select-String cmdlet 停止工作,每次我使用它时,它都会尝试“打开未知文件”,如下图所示:
我在尝试从批处理文件 运行 我的一个 ps 脚本时发现了它 - 在 Win 10 中它运行良好,但在 Win 11 中它没有。当我 运行 VSCode 中的代码时,它工作正常,我不知道为什么。
我尝试将文本从 VSCode(如果编码不同)复制到一个新文件并直接复制到 PowerShell 终端,但其中 none 有效。
我也尝试了新的 Windows 11 终端并将 PowerShell 更新到最新版本 (7.2.2 x64),但没有任何效果。
Dis/Enabling Windows PowerShell 2.0 的系统函数在这种情况下也没有效果。
编辑:
我发现如果我在脚本开头 运行 命令 Update-Script
(没有任何参数), Select-String
会按预期工作(在此之前该 cmdlet 似乎根本不存在 - Get-Help Select-String
没有找到任何东西,但在使用 Update-Script
后它找到了适当的帮助)。其他一些命令也是如此(例如 Trace-Command
)。查看输出:
PS C:\> Get-Command Select-String
CommandType Name Version Source
----------- ---- ------- ------
Application Select-String 0.0.0.0 C:\WINDOWS\system32\Select-String
PS C:\> Update-Script
PS C:\> Get-Command Select-String
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Select-String 3.1.0.0 Microsoft.PowerShell.Utility
Trace-Command
“使”Select-String 像 Update-Script
一样正常工作并给出以下输出:
DEBUG: CommandDiscovery Information: 0 : Looking up command: Select-String
DEBUG: CommandDiscovery Information: 0 : Cmdlet found: Select-String Microsoft.PowerShell.Commands.SelectStringCommand
hello everybody!
为什么我必须这样做(调用 Update-Script
),而 Select-String
没有它也能正常工作?
嗯,有很多关于powershell“你想如何打开这个文件”的讨论(没有真正解决),但最后,这是我的问题:
解决方案:
删除文件 c:\Windows\System32\Select-string(0 字节,无文件扩展名)。我不知道它是怎么到那里的...