当我创建新的连接变量时,PowerShell 会覆盖源变量

当我创建新的连接变量时,PowerShell 会覆盖源变量

我有一个大型脚本,它将请求一个下载目录并将一堆文件下载到其中。但是,当我根据目录字符串设置下载文件名字符串时,它们都会被完整的文件名字符串覆盖。我的意思是:

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

这会导致 $dldir 和 $dlfile 都设置为“c:\downloads\data.csv”。显然,由于我想在脚本中多次重复使用 $dldir 来设置 $dlfile,所以我不希望它发生改变。有人知道怎么做吗?

谢谢。

答案1

代替:

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

使用:

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

答案2

另一种选择是使用 Join-Path

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

Join-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'

都会返回有效路径。如果您要获取文件位置的用户输入,并且不想担心对输入的尾部斜杠进行清理,那么这非常有用。

相关内容