复制或剪辑命令包含变量

时间:2019-07-15 21:00:19

标签: powershell

我似乎无法找出或看到在线上| clip函数将复制此字符串/变量$ home的任何地方

每天我都有一个任务计划程序,该任务计划程序在登录时打开PowerShell,然后启动.ps1文件来运行程序以开始新的一天。我经常更改目录,脚本所在的目录具有较长的UNC路径。所以我想让我的生活更轻松。这就是我所拥有的,并且此字符串在我的脚本中:

$home = "C:\Users\Bender\onedrive - Futurama\tools\scripts" | clip

因此,当我需要返回到根脚本路径时,我可以这样做

cd $home

问题是,| clip的结果是C:\Users\Bender\onedrive - Futurama\tools\scripts

是否可以将整个内容复制到剪贴板?

$home = "C:\Users\Bender\onedrive - Futurama\tools\scripts"

1 个答案:

答案 0 :(得分:0)

您需要使用2个命令来完成该操作。

$MyHome = "C:\Users\Bender\onedrive - Futurama\tools\scripts"
$MyHome | clip

出于F8的目的和/或为您提供方便,您始终可以使用半列分隔符将多个命令缩短为一行。

$MyHome = "C:\Users\Bender\onedrive - Futurama\tools\scripts";$MyHome | clip

在我的两个示例中,您都将执行以下两项操作:

  • 第一个命令执行变量分配。
  • 第二条命令将分配的变量内容发送到剪贴板。

此外,请注意$home变量是Powershell保留的自动变量。

因此,您不能使用在该变量名称中写入值,因此为什么在我的示例中使用MyHome。您可以在下面的参考中查看保留变量名称的列表。

您的命令因此无法工作,因为

  • 您正在尝试为保留变量名分配一个值。
  • 您实际上是将通过clip命令传递的路径的结果分配给变量,而不是路径本身。由于clip没有返回到控制台,因此变量分配将始终为$null

参考

About automatic variables

  

$ HOME

     

包含用户主目录的完整路径。这个变量是   相当于“ $ env:homedrive $ env:homepath” Windows   环境变量,通常为C:\ Users \。