繁体   English   中英

具有变量的Powershell复制文件

[英]Powershell copy file with variable

我正在尝试运行以下我认为非常简单的脚本。 我在这干什么...

[Environment]::UserName = $username

Write-Host "The user is $username"
$from = "c:\Users\" + $username + "\favourites\*.*" 
$to = "c:\test"

Write-Host "This is from dir: $from"
Write-Host "This is to dir: $to"

Copy-Item $from $to

该脚本似乎不喜欢+ $username + ...

我认为您弄错了第一行。 当前,您正在为$Env:UserName分配一个空变量(其值应为$null ),从而覆盖用户名,而不是读取它。

我认为应该是

$username = [Environment]::Username

或者,如上所述,您可以通过特殊的Env:驱动器访问环境变量:

$username = $Env:Username

与您的问题无关,只需编写更好的代码即可:

  1. 您可以将用户名直接放入字符串(如上一行所示,您似乎知道,尽管在这种情况下您不需要字符串):

     $from = "C:\\Users\\$username\\favourites\\*" 
  2. 您根本不需要获取用户名,可以使用

     $Env:UserProfile 

    要么

     [Environment]::GetFolderPath([Environment+SpecialFolder]::UserProfile) 

    甚至

     [Environment]::GetFolderPath([Environment+SpecialFolder]::Favorites) 

    这可能最终就是您想要的,在这里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM