我将其发布在堆栈上(现已删除),但被告知这可能是一个更合适的论坛。
我在 windows-subsystem-linux 1 上使用 Ubuntu,并使用Windows Ubuntu 终端。
我正在调用 powershell 将剪贴板的内容输出到文件,如下所示:
powershell.exe -command "Get-Clipboard" > myFile.txt
这完全改变了我的终端的外观,我想我可能正在运行 powershell 或类似的东西。请参阅下面的“重定向到文件之前”和“重定向到文件之后”。它还会在屏幕的大约 3/4 后截断我的终端。
您会注意到窗口描述现在显示“powershell.exe”。但我仍然可以运行 Linux 命令,并且可以访问 bashrc 中定义的函数和别名,因此我并不是突然进入了 powershell 环境。
奇怪的是,如果我运行powershell.exe -command "Get-Clipboard"
(即不重定向),它会将剪贴板内容输出到终端而不会影响我的终端外观。
打字ctrl-c
没有任何反应。ctrl-d
或者打字exit
只会终止终端。
您对正在发生的事情有什么想法吗?
前:
重定向到终端后:
重定向到文件后:
答案1
根据评论和我们的测试,这似乎是“Ubuntu 终端”(使用 Ubuntu WSL 发行版从 Windows 开始菜单启动的终端)的问题。其他终端,如 hyper.js、Windows 终端(来自 Microsoft,在商店中)和默认 Windows 终端(使用“开始”菜单中的“bash”命令时启动)似乎都可以正常工作。
建议 - 安装备用终端。我个人偏爱 Windows 终端。
答案2
这是一个问题旧版本Windows PowerShell 的:
Windows PowerShell 中有一个检查功能,用于查看 Consolas 字体是否支持该代码页。列表如下这里。UTF-8 65001 不在该列表中,因此每当 Windows PowerShell 识别到 Consolas 不支持的代码页时,它都会将字体更改为 Terminal。PowerShell Core 6.x 不再有此代码,因此您不会看到此行为。
你需要下载并安装较新版本的 PowerShell Core(6 或更高版本)并重写您的命令以使用pwsh.exe
(指向较新的 PowerShell Core 6 或更高版本)而不是powershell.exe
(指向较旧的 Windows PowerShell 5.1),如下所示:
pwsh.exe -command "Get-Clipboard" > myFile.txt