当我创build新的连接variables时,PowerShell会覆盖源variables

我有一个大的脚本,将要求下载目录,并下载一堆文件。 但是,当我根据目录string设置下载文件名string时,它们都被完整的文件名string覆盖。 这是我的意思:

$dldir = 'c:\downloads' $dlfile = $dldir += '\data.csv' 

这导致$ dldir和$ dlfile被设置为“c:\ downloads \ data.csv”。 显然,因为我想重复使用$ dldir在脚本中多次设置$ dlfile,我不希望它改变。 有谁知道如何做到这一点?

谢谢。

代替:

 $dlfile = $dldir += '\data.csv' 

使用:

 $dlfile = $dldir + '\data.csv' 

另一个select是使用Join-Path

 $dlfile = Join-Path $dldir '\data.csv' 

Join-Path的好处是你不必担心前导斜线或后斜线。命令会为你清理,给你一个很好的干净的文件path。

所以

 $dlfile = Join-Path $dldir 'data.csv' 

要么

 $dldir = 'c:\downloads\' $dlfile = Join-Path $dldir '\data.csv' 

要么

 $dldir = 'c:\downloads\' $dlfile = Join-Path $dldir '\data.csv' 

都会有一个有效的path。 这是非常有用的,如果你正在为用户input文件的位置,并不想担心消毒后input的斜杠input。