質問: windows版のgzipについて windows版のgzipについて os:win xp-pro gzip「http://www.gzip.org/」 windows版で 標準入力からの情報を圧縮しようとするとおかしくなります。 以前にpostgresからのダンプ圧縮としてマニュアルに載っているコマンド(linux用)をwindowsでも出来ないかと質問させて頂いたところ、 gzipのwindows版を紹介して頂きました。 <ダンプ圧縮コマンド> pg_dump dbname | gzip > filename.gz <試行1> windows版のgzipをインストール後、試してみました。 pg_dump.exe --host=localhost --username=postgres template1 | gzip.exe > c:?temp?test_dump.gz しかし、c:?temp?test_dump.gzを解凍できません。 一旦、テキストで出した後、改めて圧縮すると解凍できます。 pg_dump.exe --host=localhost --username=postgres template1 > c:?temp?test_dump gzip.exe c:?temp?test_dump <試行2> 一旦、postgresの事は忘れて、適当なテキストファイルを用意し、標準入力から圧縮しました。 type c:?temp?test.txt | gzip.exe > c:?temp?test.txt.gz 結果は、やはり解凍できません。 シンプルに圧縮してみました。 gzip.exe c:?temp?test.txt c:?temp?test.txt.gzを解凍する事ができました。 どうしたものでしょうか? 何かやり方が悪いのでしょうか?
回答: unix 環境の cat 相当の処理をしたいのだと思いますが、 type は cat ではないのでバイナリファイルをうまく扱えず、 結果としてパイプを通して gzip に渡せていないように思います。 対策としては cat を使えるように cygwin や msys 環境を作るか、 単独で cat 相当のコマンドを導入することになります。 パイプに拘るのであれば、cygwin か msys を導入するのを提案します。