1

cmd で powershell 2.0 から netsh に cmd を送信するのに問題があります。

奇妙なことは、netsh への 1 つのタイプのコマンドで機能することです。

例 - これは機能します:

$input1 = @"
netsh wlan connect name=Aaknet ssid=Aaknet interface="Trådløs netværksforbindelse"
"@
$OutputVariable = ($WifiOn | netsh) | Out-String

インターフェイス名に char å が含まれていても、netsh は問題なくコマンドを実行します。

しかし、これを実行すると、Powershell は å を ? として解析します。netshコマンドに

$ConnectMBN = @"

netsh mbn connect interface="Mobilbredbåndsforbindelse" connmode=name name=3

"@

$ConnectMBN | netsh

pws がコンソールに戻ります:

netsh>netsh>Decommand not found:    netsh mbn connect interface="Mobilbredb?ndsforbindelse" connmode=name name=3.

ご覧のとおり、pws は å を ? に変えます。

私が混乱しているので、誰か助けてもらえますか!?

4

2 に答える 2

0

コメントのダイアログに基づいて更新されました。

次のコードは、あなたの編集、私の提案の編集です:-)

    $Char =[Char]34
    $Name ="Mobilbredbåndsforbindelse"
    $Interface ="$Char$Name$Char"
    $Name2="3"
    $Opts = @("mbn","connect","interface=$Interface","connmode=name","name=$Name2");
    netsh $Opts

したがって、パラメータをnetsh配列に入れ、それを必要とする唯一のパラメータで二重引用符を$Opts使用して、インターフェイスを示します。[char]34

配列項目で一重引用符ではなく二重引用符を使用すると、その中の変数が展開され、その内容がパラメーター配列の一部になることを意味します。

最後に、コマンド ラインと同じように直接 netsh を呼び出し、その後にパラメーター配列$Opts.

私が言うように、私はモバイルブロードバンドを持っていないので、wwansvc実行されていないというエラーが$Opts表示されますが、後で入力してコンテンツを表示すると、次のようになります。

mbn
connect
interface="Mobilbredbåndsforbindelse"
connmode=name
name=3

編集:これを試してください(mbnをテストできないため、テストできるnetsh wlan connectを使用してみました)...

    $Char =[Char]34
    $Name ="Mobilbredbåndsforbindelse"
    $Interface ="$Char$Name$Char"
    $Name2="3"
    $connect = ("netsh mbn connect interface=$Interface connmode=name name=$Name2");
    $connect
于 2013-07-08T12:21:04.400 に答える