粘贴PowerShell时如何使输入不自动执行

时间:2014-06-10 19:43:38

标签: powershell copy-paste

我觉得这是一个非常简单的修复,但每当我尝试使用右键单击粘贴到PowerShell时,它会自动执行我想要粘贴的任何内容。该功能是根据使用AD的输入查找计算机名称,然后复制计算机名称以用于其他功能。以下是仅进行复制的部分的代码:

    $strComputer = $output.Name
    $strComputer | clip | Out-Null

因此,当我右键单击以粘贴时,它会执行$ strComputer等于的任何内容并显然会抛出错误。谢谢!

2 个答案:

答案 0 :(得分:2)

将某些内容粘贴到PowerShell(以及clip.exe是一个非常好的示例)的问题是,任何换行(和clip.exe这样使用会在最后添加换行符)都会触发相同的反应你按下输入会。

至少有两种解决方法:

  • 不带换行符的粘贴(例如使用[System.Windows.Clipboard]::SetText($output.Name)
  • 如果你在v3上 - 使用PSReadLine模块和CTRL + V

对于第一个 - 确保首先运行Add-Type -AssemblyName PresentationCore - 默认情况下仅在PowerShell ISE中加载此程序集。如果您使用的是v3 +,我真的建议您试试PSReadLine。

答案 1 :(得分:0)

或者,您可以使用ISE,您可以将其粘贴到脚本窗格(上半部分),然后根据需要进行编辑直到显示,并在需要时运行。