powershellからコマンドを実行したいのですが、powerershellは外部サーバーでコマンドを実行しています。 plink
。しかし、これは私が持っていない場合にのみ機能します '
または "
それ以外の場合、Powershellはジャンプして例外を出力します。
例:
Invoke-Expression "$plinkPath -ssh $username@$host 'echo well...; echo hello'"
与える
well...
hello
。しかし、両方をエコーしたい場合はどうなりますか '
そして "
、 いう
Invoke-Expression "$plinkPath -ssh $username@$host 'echo well...; echo hello, my "friend" 'brutus'!'"
取得するため
well...
hello, my "friend" 'brutus'!
?
編集:拡張子、私はしたいです $
。
well...
hello, my "friend" 'brutus', you $insult!
1
キーボードのチルダ(〜)と同じキーであるバックティックso( `)でエスケープしてみてください。あるいは、実際には一重引用符も2倍にしてみてください。あなたが同様に役に立つと思うかもしれない詳細についてはここを読んでください: rlmueller.net/PowerShellEscape.htm
—
Pimp Juice IT
仕事をするのに間違ったコマンドレットを使用しています。
—
Seth
Invoke-Expression
ローカルコマンド(PowerShellコード)を実行するために使用する必要があります。実行可能ファイルを実行したい場合は、実行してください。にリストされているオプションの1つを使用することを検討してください スペースと引用符を含むパラメーターを使用してPowerShellでEXEファイルを実行する方法
両方のあなたの提案は大丈夫ですが、それが実行になるとそれは私のために雑然とする方法を得ました
—
Bowi
awk
その(それ自体でさえも)ほとんど読めないコマンドラインを使って。そのため、コマンドをスクリプトにまとめてアップロードしました。 pscp
そしてそれを実行する plink
。