【问题标题】:Powershell - net use doesn't work with variablesPowershell - 网络使用不适用于变量
【发布时间】: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


【解决方案1】:

PetSerAl 找到了解决方案:

@blaargh 添加 Write-Host "'$($hashtwo[1])' '$($hashtwo[0])'" 以确保变量在某处没有额外空间。

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 2014-12-21
    • 1970-01-01
    • 2022-06-20
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    相关资源
    最近更新 更多