在Windows 10中,是否有方法将应用程序中选定的文本发送到Powershell?

在Windows 10中,是否有方法将应用程序中选定的文本发送到Powershell?,windows,powershell,windows-10,Windows,Powershell,Windows 10,我希望能够在文本编辑应用程序中选择文本,然后将该选择直接发送到PowerShell进行进一步处理和操作。我意识到我可以用鼠标选择并复制,然后从剪贴板中获取文本,但如果可能的话,我想剪切剪贴板步骤 我的用例是一个工作流,在这个工作流中,我必须从一组文件中进行大量单独的文本选择(我需要的选择根据具体情况而有所不同,并且不能以编程方式完成)。我想设置一个简单的键盘快捷键,自动获取所选文本并将其附加到预设文本文件中 我是在OSX上这样做的,所以我只是想在开始尝试使用剪贴板编写脚本之前,看看在Window

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

我的用例是一个工作流,在这个工作流中,我必须从一组文件中进行大量单独的文本选择(我需要的选择根据具体情况而有所不同,并且不能以编程方式完成)。我想设置一个简单的键盘快捷键,自动获取所选文本并将其附加到预设文本文件中

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

编辑:

@西蒙姆ᶜKenzie:我主要使用Sublime Text 3,但实际上我有时会与来自不同编辑器的文件交互(Visual Studio代码、一些降价预览器等)。在OSX上,我甚至使用“获取所选文本”功能从web浏览器中获取内容,等等,不用为我使用的每个编辑器创建宏,这有点不错。在任何地方都有一个“随时随地获取文本”的功能是非常方便的


我正在从Mac切换到Windows,一切都完全不同。我已经承诺尝试以窗口的方式学习东西,而不是强迫Win成为Unix/OSX。我现在只是在测试一些东西,看看Windows中有哪些功能可用。如果它不存在,我很高兴按时完成,但我想先确定一下,然后再投资其他一些选择

仅在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
    }
}
While($true){
if([System.Windows.Clipboard]::ContainsText()){
$Var=[System.Windows.Clipboard]::GetText(“文本”)
[System.Windows.Clipboard]::Clear()
}
否则{
开始睡眠-毫秒5
}
}
这不是一个专用的快捷方式,但它会抓取你复制到剪贴板上的任何文本。。。
您还应该能够使用System.Windows.Input.Keyboard等.net类获得所需的确切行为,但这可能需要付出更多的努力。

仅在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
    }
}
While($true){
if([System.Windows.Clipboard]::ContainsText()){
$Var=[System.Windows.Clipboard]::GetText(“文本”)
[System.Windows.Clipboard]::Clear()
}
否则{
开始睡眠-毫秒5
}
}
这不是一个专用的快捷方式,但它会抓取你复制到剪贴板上的任何文本。。。
您还应该能够使用System.Windows.Input.Keyboard等.net类获得所需的确切行为,但这可能需要付出更多的努力。

您使用的是什么文本编辑器?我相信很多编辑器都会为这些任务内置宏语言。@SimonMᶜKenzie我使用了两种不同的编辑器,在一个地方拥有这种功能只是我习惯使用的一种便利。我编辑了我的问题,以帮助为我要查找的内容提供更多的上下文。AFAIK检测和访问选定文本对于每个应用程序都是唯一的,因此您需要在应用程序中创建一个宏(如果它支持的话),并让它执行。触发通用powershell脚本以处理数据。我可能会选择剪贴板解决方案。您使用的是什么文本编辑器?我相信很多编辑器都会为这些任务内置宏语言。@SimonMᶜKenzie我使用了两种不同的编辑器,在一个地方拥有这种功能只是我习惯使用的一种便利。我编辑了我的问题,以帮助为我要查找的内容提供更多的上下文。AFAIK检测和访问选定文本对于每个应用程序都是唯一的,因此您需要在应用程序中创建一个宏(如果它支持的话),并让它执行。触发通用powershell脚本以处理数据。我可能会选择剪贴板解决方案。很有创意,但它破坏了正常的复制粘贴。也许您需要跟踪以前的剪贴板值,而不是清除剪贴板…是的,它会中断复制粘贴。在我看来,脚本只有在涉及标记文本的特定任务正在执行时才会运行,所以对我来说这似乎不是什么大问题。如果要保存剪贴板的内容,必须定义一个新的组合键(可能可以使用System.Windows.Input.Keyboard),然后将文本复制到剪贴板并按该组合键。听起来很笨拙,谢谢你。我要好好玩玩,看看会发生什么。我的Powershell/VB/.net的排版现在很可怜,所以我会用它来练习,看看我能不能让它工作。它似乎非常接近我想要的,所以我将把它标记为正确的答案,因为我感觉到,关于我想要的东西,总体上最好的答案是“可能不值得努力”。我发现了自动热键,所以我要看看我是否能把它也应用到一些东西上。很有创意,但它破坏了正常的复制粘贴。也许您需要跟踪以前的剪贴板值,而不是清除剪贴板…是的,它会中断复制粘贴。在我看来,脚本只有在涉及标记文本的特定任务正在执行时才会运行,所以对我来说这似乎不是什么大问题。如果要保存剪贴板的内容,必须定义一个新的组合键(可能可以使用System.Windows.Input.Keyboard),然后将文本复制到剪贴板并按该组合键。听起来很笨拙,谢谢你。我要好好玩玩,看看会发生什么。我的Powershell/VB/.net排骨现在很可怜,所以我要用它来练习,看看我能不能做到