我工作的公司为所有管理级帐户添加$符号前缀。麻烦,我知道。
我正在尝试使用test-path
查看文件夹是否存在,如下所示:
$username = read-host "Enter Login ID:"
我在框中输入$adminsdb
并点击确定
##### Find TS Profile #####
$TSProfile_exist = test-path "\\server\tsprofiles$\$username"
文件夹已存在,但...... $TSProfile_exist
即将出现错误
如何处理用户名中的$
?我正在构建这个应用程序,以便为环境中的用户提供快速统计信息。我们还有以#符号为前缀的服务帐户。
答案 0 :(得分:4)
在PowerShell中处理特殊字符的方法是使用`(反引号)
$TSProfile_exist = test-path "\\server\tsprofiles$\$username"
变为
$TSProfile_exist = test-path "\\server\tsprofiles`$\$username"
小心使用Test-Path
的技巧,是语义不是目录存在,而是目录是可读的。换句话说,如果您无权访问您测试的目录,即使目录存在,您也会收到false
。 See this other entry
答案 1 :(得分:3)
另一种选择是使用单引号字符串;在这种情况下,powershell不会扩展变量。
test-path '\\server\path\$username'
-Oisin