Windows のコマンドライン cmd.exe 用のエスケープってどうやるの?
ActivePerl からパイプを使って GnuPG を起動しようとしたが、 perlipc に載ってる方法ではダメみたい。pipe の fileno で取ったファイルディスクリプタもうまく渡せないみたいだし。
それで次のようなことをしようとしたんだけど、pipe のコマンドの引数をリストでは渡せないっていわれる。
open(GPG, '-|', $GPG, '--list-keys') or die; |
しょうがないので、コマンドラインを連結しましょうということになったのだが、Windows の cmd.exe の構文がわからない。
sub quote_for_command { my $r = ""; while (@_) { my $arg = shift; $arg =~ s/\%/^\%/gs; $arg =~ s/"/"""/gs; $r .= " " if $r ne ""; $r .= "\"$arg\""; } return $r; } |
でもこういうのは需要あるはずだから探せば見つかりそうなものなのに、 Perl でやってるのを、ちょっと見つけられなかった。
更新: | 06/02/26 |
初公開: | 2006年02月26日 05:47:05 |
最新版: | 2006年03月11日 03:58:07 |
2006-02-26 05:47:03 (JST) in Perl Windows アプリ | 固定リンク | コメント (0) | トラックバック (0)
トラックバック
他サイトなどからこの記事に自薦された関連記事(トラックバック)はまだありません。
» JRF のソフトウェア Tips:Windows のコマンドライン cmd.exe 用のエスケープってどうやるの? (この記事)
コメント