在Windows 10中有一种方法可以将应用程序中选择的文本发送到Powershell吗?

时间:2016-06-19 02:23:04

标签: windows powershell windows-10

我希望能够在文本编辑应用程序中选择文本,然后将该选择直接发送到PowerShell以进行进一步处理和操作。我意识到我可以用鼠标选择和复制,然后从剪贴板中获取文本,但我想尽可能剪切剪贴板步骤。

我的用例是一个工作流程,我必须从一组文件中选择很多单独的文本(我需要的选择因具体情况而异,不能以编程方式完成)。我想设置一个简单的键盘快捷键来自动获取所选文本并将其附加到预设文本文件。

我在OSX上这样做,所以我只是想在Windows开始尝试使用剪贴板编写脚本之前看看它是否可行。

编辑:

@SimonMᶜKenzie:我主要使用Sublime Text 3,但实际上我有时会与来自不同编辑器的文件进行交互(Visual Studio Code,一些降价预览器等)。在OSX上,我甚至使用了" get-selected-text"能够从Web浏览器中获取东西等等,并且不必为我使用的每个编辑器创建宏。有一个单一的" get-text-anywhere"非常方便。能力无处不在。

我从Mac切换到Windows,一切都完全不同。我承诺尝试以Windowsy方式学习东西,而不是试图强迫Win成为Unix / OSX。我现在正在测试一些东西,看看Windows中可用的功能。如果它不在那里,我很高兴能够到期,但我想先确定,然后再投入其他一些选择。

1 个答案:

答案 0 :(得分:0)

仅在Windows 10上尝试过此操作,因此旧版本可能会有所不同:

While ($true) {
    if ([System.Windows.Clipboard]::ContainsText()) {
        $Var = [System.Windows.Clipboard]::GetText("Text")
        [System.Windows.Clipboard]::Clear()
        <do stuff>
    }
    else {
        Start-Sleep -Milliseconds 5
    }
}

它不是专用的快捷方式,但它会抓取您复制到剪贴板中的任何文本... 您还应该能够使用.net类(如System.Windows.Input.Keyboard)获得所需的确切行为,但这可能需要付出更多努力。