2012-12-21 45 views
3

有似乎是在Powershell中的一个基本问题。我正在做一个从UNC共享到本地C:\驱动器的简单副本项目脚本。这里是我的代码:复制项目其中文件名是计算机主机名

$hostname = $env:computername  
Copy-Item -Path '\\server\share\$hostname.txt' -Destination 'C:\' 

我想不通它的语法使它检索与使用变量的主机名称相匹配的文本文件。如果我把一个静态命名的.txt文件放在代码中。

我需要将这个变量放在什么位置才能起作用?

回答

2

你需要更换你的单引号与双引号是这样的:

$hostname = $env:computername 

Copy-Item -Path "\\server\share\$hostname.txt" -Destination 'C:\' 
+0

仅供参考,UNC共享需要启动带双反斜杠 - \\。 –

+0

谢谢,在复制代码时我必须意外删除它。刚刚纠正。 – CIGuy

+0

您没有删除它。原始问题中缺少双斜线(编辑之前)。 :-) –

1

单引号字符串不会扩展变量。你需要一个双引号的字符串例如: -

Copy-Item "\\server\share\$hostname.txt" C:\ 

而在一般情况下,你不需要引用字符串参数的PowerShell命令,除非你需要变扩建或有字符串中的空间。

1

你也可以直接嵌入到环境变量中的双引号字符串:

Copy-Item "\\server\share\$env:computername.txt" C:\ 
相关问题