0

私は混合環境にいて、Windows ログイン用に既に作成されたバッチ スクリプトを使用して、Mac ユーザーの共有をマウントする任務を負っています。

主な問題が 2 つあります。

  1. MacのスクリプトでNETLOGON共有から読み込もうとしています

  2. これらのスクリプトの net use コマンドを、Mac が使用できるものに変換しようとしています。

私はほとんどの時間を、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

また、スラッシュをどのようにエスケープしようとしても、文字列の最初の配置を取り除こうとするために「\\」を切り取ることができないようです。

理想的には、Mac がマウントできるように、出力をこの smb://domain/dfs1/share1 のようなものに変換したいと思います。

4

1 に答える 1

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') )
于 2012-07-03T14:02:46.937 に答える