【发布时间】:2016-03-24 11:20:20
【问题描述】:
我正在尝试运行一个在登录时映射网络驱动器的脚本。通常,我使用 get-content 和 | convertfrom-stringdata 将我的参数(驱动器号和路径)放入哈希中。
我的问题如下:
net use /persistent:no $driveletter $networkpath
导致错误。当我用实际路径(\\server\share\folder)替换 $networkpath 时,它可以工作。
有人知道在那里做什么吗?非常感谢您的帮助。 如有遗漏,我会尽快补充!
你好,
布拉格
编辑:更多代码以更好地理解问题
$hash = get-content C:\temp\file.txt | convertfrom-stringdata
foreach ($keys in $hash.keys) {
$hashtwo = $hash.$keys -split ("=")
net use /persistent:no $hashtwo[1] $hashtwo[0]
}
我的文本文件如下所示:
key = \\\\server\\share\\folder =G:
【问题讨论】:
-
表面上看不出它有什么问题。您确定
$networkpath包含您认为的内容吗?它包含空格吗?如果你echo "~$networkpath~"你会得到什么? -
$driveletter = "x:"$networkpath = "\\server\share"`net use /persistent:no $driveletter $networkpath也适合我 -
不幸的是,它不能那样工作。引号是必要的吗?让我在这里添加更多代码,让您了解问题可能出在哪里。
-
当回显 $networkpath 或 $driveletter 时,它总是顺便提出正确的内容
-
@blaargh 添加
Write-Host "'$($hashtwo[1])' '$($hashtwo[0])'"以确保变量在某处没有多余的空间。
标签: powershell variables scripting net-use drive-mapping