标题: [原创教程] 用 PowerShell 输出中文到剪贴板 [打印本页]
作者: victorwoo 时间: 2014-7-21 11:14 标题: 用 PowerShell 输出中文到剪贴板
本帖最后由 victorwoo 于 2014-7-21 16:57 编辑
原始链接:用 PowerShell 输出中文到剪贴板
发表日期:2014-07-22
# 方法一 通过 clip.exe
用 PowerShell 将字符串输出到剪贴板的最简单方式是:复制代码
不过直接这么使用的话,如果待输出的字符串是包含中文的,那么剪贴板里的内容会出现“乱码”:复制代码
剪贴板里的内容变成:复制代码
这是因为为了兼容旧程序,管道操作缺省将字符串采用 ASCII 编码,因此对于中文字符,被转换成了“??”。解决方案如下:- $OutputEncoding = [Console]::OutputEncoding
- 'abc中文def' | clip.exe
复制代码
# 方法二 通过 WPF 方法
以 `-sta` 参数启动 PowerShell 后,执行以下代码:- Add-Type -Assembly PresentationCore
- [Windows.Clipboard]::SetText('abc中文def')
复制代码
PowerShell 2.0 的控制台,缺省设置是 MTA;PowerShell 3.0 的控制台,缺省设置是 STA。
关于 `-sta` 的知识,请参见PowerShell中的 STA和MTA。
参考材料:
- $OutputEncoding to the rescue
- Powershell能否将文件列表写入剪切板
- PowerShell中的 STA和MTA
- PowerShell.exe Command-Line Help
- QQ 群 *PowerShell技术交流(271143343) 2014-07-01 的讨论
作者: CrLf 时间: 2014-7-21 17:46
$OutputEncoding = [Console]::OutputEncoding
原来如此,点赞!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |