使用net use从批处理文件挂载mac上的共享

时间:2012-07-02 21:55:21

标签: bash scripting batch-file

我处于混合环境中,并且已经负责为mac用户安装共享,方法是使用已经创建的批处理脚本进行Windows登录。

我有两个主要问题。

  1. 尝试从mac上的脚本中读取NETLOGON共享

  2. 尝试将这些脚本中的net use命令转换为mac可以使用的命令。

  3. 我花了大部分时间来处理将整个net use命令转换为可用于mac的东西的部分。

    我开始时:

    IFS='
    '
    
    arr=($(grep '\\' /Users/tjguidry/Desktop/tjguidry.bat | tr "[A-Z]" "[a-z]"))
    

    预期的数组是这样的(基于我已经拥有的文件):

    net use n: \\domain\dfs1\share1 /persistent:no
    net use r: \\domain\dfs1\share2 /persistent:no
    rem net use o: \\domain\dfs1\share3 /persistent:no
    rem net use p: "\\domain\dfs1\share4" /persistent:no
    

    grep命令执行它应该在终端中单独执行的操作 但是当我输出数组时,\ domain中的第一个斜杠被切断,对于一些以字母“a”开头的共享(即\ domain \ dfs1 \ admin),它会切断输出中的“\ a”。 所以我得到了:

    net use n: \domain\dfs1\share1 /persistent:no
    net use r: \domain\dfs1\share2 /persistent:no
    rem net use o: \domain\dfs1hare3 /persistent:no
    rem net use p: "\domain\dfs1hare4" /persistent:no
    

    我也似乎无法切断“\\”试图摆脱弦的第一次放置,无论我如何试图逃避斜线。

    理想情况下,我想将输出转换为类似smb:// domain / dfs1 / share1的内容,以便mac能够安装它。

1 个答案:

答案 0 :(得分:0)

这似乎正确处理文件输入:

IFS='
'
arr=($(grep '\\' /Users/tjguidry/Desktop/tjguidry.bat | tr "[A-Z]" "[a-z]" | sed s:\"::g | sed s:\\\\:\/:g | sed 's|/persistent:no||g' | sed 's|net use [a-z]: ||g') )