2012-07-29 9 views
15

ディレクトリ内のすべてのjavascriptファイルとそのすべてのサブディレクトリを1つのファイルに連結する必要があります。Windowsバッチファイル - サブディレクトリ内のすべてのファイルを連結

今、私は一つのファイルに一つのディレクトリ内の一致するファイルのすべてを連結バッチファイルで、非常に簡単なコマンドを持っている:1つのディレクトリではなく、任意のため、この唯一の作品、しかし

copy C:\javascripts\*.js concatenated.js 

そのサブディレクトリ。どのように私はこの同じことを行うことができますまた、サブディレクトリ内のすべての一致するファイルを含めることができますか?

ありがとうございます!

答えて

21

バッチファイルからパーセントが、それは全体の文の周りに括弧を置くとして代わりにアペンドリダイレクトの単一上書きリダイレクトを使用するために、もう少し効率的である

@echo off 
del concatenated.js 
for /r "c:\javascripts" %%F in (*.js) do type "%%F" >>concatenated.js 

EDIT
を二重にする必要があります各反復。また、最初にファイルを削除する必要がなくなります。バッチ

から

>concat.js (for /r "c:\javascripts" %F in (*.js) do @type "%F") 

または

@echo off 
>concat.js (for /r "c:\javascripts" %%F in (*.js) do type "%%F") 
+0

ああ、あなたは助けるために多くの優れた、ありがとう! –

+0

あなたの最後の例 "またはバッチから"必要なものは、%Fを%% Fに変更したもの、または少なくともXPを獲得したものです。 – Mica

+0

@Mica - Yep、すべて固定されています。ありがとう – dbenham

1

私はバッチファイルからそれをするのアプローチを認識してないんだけど、両方に縮小化

http://code.google.com/p/minify/

は、JavaScriptファイルを結合しても除去することによって、それら(例えば縮小化のようなツールを使用することができますコメントと不要な空白)。

さまざまなプログラミング環境に対応するツールがかなりあります。あなたはあなたが上記のコマンドを実行する前に、まず既存のconcatenated.jsを削除したい場合があります

for /r "c:\javascripts" %F in (*.js) do @type "%F" >>concatenated.js 

を使用することができ、コマンドラインから