スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バッチファイルでフォルダの中のファイルを一つにつなげる

タイトル通りです。

会社でいくつかのテキストファイルを、1個にまとめたいんだけど...と言われて簡単にできそうなできそうでないような不思議な感覚に陥りました。

確かバッチファイルでできたような、と思いつつ2分で見つからなかったので諦めて、Vectorで誰か作ってるだろ、と思ってそれっぽいのをダウンロードして解凍みたら「setup.exe」が出てきて嫌になって、その場はおとなしく、一つ一つテキストファイルを開いてコピーして新しいテキストファイルに貼り付けて済ませました。
でもそれってすごい敗北感。

バッチファイルでできないわけがないので、調べてみました。

指定したフォルダの中身の一覧を表示するのはdir
コマンドプロンプトを使ってみよう! -ファイル操作-:[2012/08/05]

確かに。ツールがなくても結合できるcopy
コマンドプロンプトの copy コマンドでファイルを結合する:[2012/08/05]

1つ目の引数は%1。バッチファイルのアイコンにファイルとかフォルダをドロップするとそれが1つ目の引数になる。引数の説明はshiftのところに書いてます。
何かのメッセージを表示したい時はpause
引数のファイルとかフォルダのパスをいじる時の説明がcallのところに書いてます。
例えば、ファイル名だけにするとか。
コマンドプロンプトを使ってみよう! -バッチファイル-:[2012/08/05]

で、できたのがこれです。

@echo off
rem 2012.08.05
rem ドロップしたフォルダの中のテキストファイルを全部一つにまとめる。

rem ********************************************
if "%~1"=="" goto MSG1
if not exist %1 goto MSG1

rem ********************************************
echo %~n1 の中の.txtファイルをくっつけます。
echo %~n1 の中はこんなのです。
echo.
dir /b %1
echo.
pause

rem ********************************************
echo.
copy .\*.txt 結合後.txt
echo.
dir /b .\結合後.txt
echo.
pause
goto END

rem ********************************************
:MSG1
echo アイコンにフォルダをドロップしてください。
echo でないと仕事できません。
echo.
pause
goto END

rem ********************************************
:END


コマンドを組み立ててる感じが凄く楽しいです。やっぱり。
えらいことにならないように、pause入れまくりで見た感じも実行感もそれなりですけど。ま、楽しかったのでいいです。
関連記事
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。