2017-12-10 47 views
1

私は助けが必要です。Powershell添付ファイルを送信する

システムは、指定されたファイルを見つけることができないので、

このコマンドは、私のために動作しません。

powershell -command "& { Send-MailMessage -From "janohanes155 <[email protected]>" -To "janohanes155 <[email protected]>" -Subject "Sending the Attachment" -Body "Got it" -Attachments "c:\shade\info.txt" -Priority High -dno onSuccess, onFailure -SmtpServer "smtp.gmail.com" -Credential "********/*********"}" 

私は何をすべき?

ありがとうございました。

+0

質問に正確なエラーメッセージをコピーして貼り付けてください。 "C:\ shade \ info.txt"が存在することを確認してください。 – lit

答えて

1

二重引用符で囲まれた文字列には、が組み込まれています。"文字が含まれています。あなたはを逃げるのを忘れた。さらに

、グラムをescapinの潜在層があるので - 現在のシェルターゲットシェルのための1つに対して1つ、追加エスケープを必要とすることができるが。

具体的なエスケープ方法は、からまでのコマンドを呼び出す場所によって異なります。

次の例では、簡略化されたコマンドを使用して、より簡潔に問題を示しています。純粋なPowerShellの形で、コマンドは次のとおりです。
Write-Output "jdoe <[email protected]>"

好奇心旺盛なことは、PowerShellのが外部から-Commandを渡されたときは、それが埋め込まれた"文字を必要とすることです。 \ - エスケープであり、PowerShell- は内部で`です。エスケープはです。 Windowsのファイル名を指定して実行]ダイアログ勝利+ R)から


すべてのことが必要とされているが\ -escape埋め込ま"文字までです。、目標PowerShellのインスタンスの利益のために(何電流シェルが関与していない):cmd.exeから

powershell -command "& { Write-Output \"jdoe <[email protected]>\" }" 

(コマンドプロンプト)\に加え

powershell -command "& { Write-Output \"jdoe ^<[email protected]^>\" }" 

- "をエスケープする場合は、^ - エスケープ<>も必要です。 cmd.exeと答えては、\ - エスケープ"文字のため、二重引用符の文字列のの外側にあるです。エスケープされた(cmd.exe""のみを認識します)。

それはあなたが遭遇したエラーメッセージの原因となっているcmd.exeによってシェルのリダイレクト演算子として<>の意図しない解釈です。 PowerShellの自体から


powershell -command "& { Write-Output \`"jdoe <[email protected]>\`" }" 

\に加えてターゲット PowerShellのインスタンスの"を - エスケーピング、あなたは` -escape "文字もしなければなりません。 現在の PowerShellインスタンス(sic)。

+1

ありがとう、それは私を助けてくれました。 –

関連する問題