- PR -

cygwinでバッチ(シェルスクリプト)を使いたい

1
投稿者投稿内容
dchar
常連さん
会議室デビュー日: 2004/05/10
投稿数: 41
投稿日時: 2004-07-14 23:58
windows上でコマンドラインからアーカイブを作る必要があるため
cygwinを使っていろいろとやっています。
要はバッチファイルを作ってあるフォルダをtarで固めてタスクで定期的にFTPしたい
のですが、
バッチからcygwinを呼び出してパラメータを渡す方法がわかりません。
以下のように書くとcygwinを呼び出した時点で止まってしまいます。

C:\cygwin\cygwin.bat
cd 対象フォルダの上のフォルダ
tar cfv hoge.tar hoge

windowsのバッチ作るのもあまりなれていない物で困っています。
それともシェルスクリプトを書いて
それをcygwinに渡して処理させるという考え方の方がいいのでしょうか?

#!/bin/sh
cd 〜

というようにしたとして
cygwinにそれをどう渡せばいいのでしょうか?

ご教授よろしくお願いいたします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-07-15 09:10
C:\cygwin\cygwin.bat
を読めばわかります。
コマンドプロンプト>type C:\cygwin\cygwin.bat
末尾のコマンドを起動してバッチ自体は終わってます。

末尾のプログラムに対して
cd 対象フォルダの上のフォルダ
tar cfv hoge.tar hoge
を「指示する」とよいです。

Cygwin を起動して
> man <コマンド名>
で読めます
hama
会議室デビュー日: 2004/07/14
投稿数: 4
投稿日時: 2004-07-15 09:31
お疲れ様です。

cygwinを呼び出すうんぬんではなく、cygwinのtar.exeをDOSから実行すればよいのです。

cygwinをc:\cygwinにインストールしたなら、c:\cygwin\binにtar.exeは入っています。

ですから、DOSのバッチファイルは以下のように書きます。

コード:
set PATH=c:\cygwin\bin;%PATH%

cd 対象フォルダの上のフォルダ 
tar cfv hoge.tar hoge



なお、cygwinのEXEファイルはcygwin1.dllがあれば実行できるので、tar.exeとcygwin1.dllをFDに入れて、tarを持ち歩いて他の環境で実行することも出来ます。
dchar
常連さん
会議室デビュー日: 2004/05/10
投稿数: 41
投稿日時: 2004-07-15 11:59
早速のレスありがとうございます。

まずシステム環境変数のPathにC:\cygwin\binを追加し、
プロンプトからtarを打つとアーカイブができました。
ただCドライブ直下のtestフォルダをtarするバッチを以下のように書くと
test.tarが作成されずにcdの行とtarの行が永遠にプロンプトを走ります。
何か足りないのでしょうか?

#バッチの内容
cd c:
tar cfv test.tar test
dchar
常連さん
会議室デビュー日: 2004/05/10
投稿数: 41
投稿日時: 2004-07-15 12:29
自己レスです

最初のcdの位置が悪かったようです。
ぶじできました。
お騒がせいたしました。
ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)