Powershell - 尝试针对类似于变量名称的字符串测试路径

时间:2011-04-14 18:33:08

标签: variables powershell

我工作的公司为所有管理级帐户添加$符号前缀。麻烦,我知道。

我正在尝试使用test-path查看文件夹是否存在,如下所示:

$username = read-host "Enter Login ID:"

我在框中输入$adminsdb并点击确定

##### Find TS Profile #####
$TSProfile_exist = test-path "\\server\tsprofiles$\$username"

文件夹已存在,但...... $TSProfile_exist即将出现错误

如何处理用户名中的$?我正在构建这个应用程序,以便为环境中的用户提供快速统计信息。我们还有以#符号为前缀的服务帐户。

2 个答案:

答案 0 :(得分:4)

在PowerShell中处理特殊字符的方法是使用`(反引号)

$TSProfile_exist = test-path "\\server\tsprofiles$\$username"

变为

$TSProfile_exist = test-path "\\server\tsprofiles`$\$username"

小心使用Test-Path的技巧,是语义不是目录存在,而是目录是可读的。换句话说,如果您无权访问您测试的目录,即使目录存在,您也会收到falseSee this other entry

答案 1 :(得分:3)

另一种选择是使用单引号字符串;在这种情况下,powershell不会扩展变量。

test-path '\\server\path\$username'

-Oisin