
指定フォルダ内にある全てのテキストファイルの文末に改行コードをつけたいと思っています。
しかし指定フォルダの中にあるサブフォルダやファイル名は不変ではありません。
量も大変な数があるためバッチファイルを作ろうとしています。(*.bat)
あるフォルダを指定すればそのフォルダに含まれるサブフォルダも対象とし
全てのテキストファイルの文末に改行コードをつけたいのですが
バッチファイルにはどのように記述すればよいのでしょうか?
理想ではそのバッチファイルが実行されているフォルダをカレントディレクトリとして取得し
そのカレントディレクトリ内のテキストフォルダ(ここでのフォルダ名は固定の予定)を指定フォルダとしたいです。
以前ほんの少しだけプログラムを触った事がある程度でコマンドプロンプトは殆ど触った事がありません。
下記のようなページを参考にしていますがうまくいきませんでした。
どなたか御教授して頂けないでしょうか。
http://oshiete.goo.ne.jp/qa/6496815.html
http://oshiete.goo.ne.jp/qa/4632586.html
http://oshiete.sponichi.co.jp/qa5051199.html
No.4ベストアンサー
- 回答日時:
No2です。
ファイル末に改行コードをつけると言うことですね。
前回書いたステップ1だと、
more file.txt > file.out
で、末尾が必ず改行になります。あとは、
move file.out file.txt
で、もとのファイルに戻す。
ステップ2は、for /r を使います。/r はその下のフォルダのファイル全部と言うこと。
for /r %%F in (*.txt) do (
more %%F > workfile.tmp
move workfile.tmp %%F
)
この回答への補足
notnot様
再度の回答ありがとうございます。
まさに求めていた動きを実現することができました。
知らなければ手作業で無駄な時間を過ごす事になりそうでしたが
今回このように処理が出来る事を知り、色々と応用出来そうだと感じました。
勉強を始めるいいキッカケとなりました。
ありがとうございました。
No.3
- 回答日時:
この手の質問は、あまり回答する気にはなれないが、補足にまじめに回答しているので。
まず、サンプルを使って改造すると言うアイデア(手段)は、正しいが、そこから先、人に頼るのは、実際に自分で作って、躓いたところだけ、質問するようにしましょう。
まるなげは、だめです。
自己顕示欲の強い方が全文載せるか、自作自演以外は(JavaScript, VBA系は50%の確率でそうでしたね)、まず回答する気になれず、的を得た回答になりません。
どこがうまくいかないのか、記載しましょう。
>書いてある処理内容を理解に至らず、応用できなかったという
では全く分かりません。どこが理解できなかったのでしょう。
あなたには、まず2つの問題が立ちふさがっています。
BATと言うが、DOSによるスクリプトの書式、及びコマンドの書式ですね。
次に、No1、 2 さんが的を得た指摘で、「改行マークとは」ということです。これを理解してないと、肝心な事ができません。
http://search.yahoo.co.jp/search?p=%E3%82%A8%E3% …
なんて言うキーワードで検索すると、何が問題なのか理解できるかと思います。まず何者なのか理解しないと操作できませんよ。
では最初の書式ですが、書式を理解してから、あなたが示したURLを見てください。
コマンドの書式
>for /?
>goto /?
>call /?
>echo /?
>cmd /?
>exit /?
>if /?
など分からない単語を、コマンドプロンプトで実行してあげれば、使い方がでます。
これらを理解できないのなら、自分で作るのはあきらめてください。提示されたURLのサンプルはごくごく簡単な物なので、どのようになっているか理解できいないのなら、無理です。
フリーソフトなどの自動化ツールを使ってください。
もちろんネットで検索してもでてきます。まず書式を理解しましょう。スクリプトなので、1行づつおってゆけばわかるようになっています。
ちなみに、for とかは繰り返し。他の言語だと、while, do, loopなどのコマンドも存在します。あとはサブルーチンをどうやるかです。サブルーチン(goto ラベル)を理解し、使えるようになると、幅が広がります。
DOSの場合、ラベルを使いこなさないと、複雑な事はできません。
次に改行マークですが、例えば、
echo\ > a.txt
として改行マークをキャリッジリターンと区別できるエディターで表示すれば、何が起きたか分かるはずです。
echo\ >> [既存ファイル]
なんてすれば、最後に追加される。秀丸なんて言うシェアウェアのエディタでみると、CR+LFであることがわかる。
で最後に問題は、DOSの欠点は文字列操作が大の苦手で、どうしてもというなら、いろんなテクニックが必要になる。
例えば、ファイルから特定の文字列を検索して、そこから2番目をとか最後とかを書き換え保存するなんて、もっとも苦手。
そんな時に、
改行マークだけがあるファイルを作っておき、(a.txt=最後に改行マークが無い。b=改行マークだけ)
copy a.txt + b.txt c.txt
なんてすると、a.txtファイルの最後の行に改行マークだけあるのが追加される。まどろっかしいが、シンプルです。
これだと文字列を検索する必要もないし、フルパス名でファイル名だけリストされているれば、単純にできる。
当然、最後の行に改行マークがあれば、c.txtでは最後の行は空行、1行ができるだけ。
これだと、findstr などで楽に空行判定ができ誤動作がなくなり、単純にできる。
なんていう、意味不明な事をすることになる。文字列操作なら、他のVBS, JScript, WSH, VBA等での操作に変えてください。今のうちに。
この回答への補足
lupin-333333様
回答ありがとうございます。
そしてご指摘ありがとうございました。
仰るとおりです。
DOSによるスクリプトの書式やコマンドの書式が分からず
/? と記述する事でヘルプが表示される事も存じませんでした。
ただ、インターネットで検索すれば同様に使い方は調べられるはずですので言い訳にもなりません。
調べずにこちらで質問してしましました。
今回の事で個人的にも色々な事が出来るなと感じ調べたいという意欲も沸きましたので
今後に同様の行動を起こさないように気をつけます。
ありがとうございました。
No.2
- 回答日時:
「文末」の定義はなんですか?行末ではないですよね(行末にはそもそも改行コードが付いている)。
いずれにせよ、まず、
(ステップ1) 1ファイルを対象にしてその処理をするスクリプトを書いて、
(ステップ2) その処理をあるフォルダの下のすべてのファイルについて繰り返す
という二段階で考えた方が良いでしょう。
一般にステップ1は、バッチスクリプトだけでは書けないので、VBScriptとかJScriptとか、Cとかで書く必要があります。
まずは、「文末」の定義の明確化から。
この回答への補足
notnot様
回答ありがとうございます。
お伝えしたかった内容はNo1様の補足に付け加えました。
http://oshiete.goo.ne.jp/qa/4632586.html
こちらのページのNo4の回答で指定したフォルダ内のファイルに対しては処理する事が出来ました。
http://okwave.jp/qa/q6496815.html
あとはこちらを参考に、指定フォルダ内全てを処理対象にしたかったのですが
書いてある処理内容を理解に至らず、応用できなかったという状況です。
No.1
- 回答日時:
テキストファイル = 文末に改行コードのあるファイル
というのが普通の認識ですが
この回答への補足
kmee様
回答ありがとうございます。
>テキストファイル = 文末に改行コードのあるファイル
すいません、知りませんでした。。
お伝えしたかったのは、テキストファイルの一番最後を改行コードの状態にしたいです。
例えば内容が2行あるようなテキストファイルをサクラエディタ等のエディタで開いた場合に
矢印を改行コードとすると
1|○○○○↓
2|○○○○↓
とこのような状態にしたいのです。
今は指定されたフォルダの中に含まれるテキストファイルに
1|○○○○↓
2|○○○○
このようなファイルも含まれています。
文末が改行コードじゃなければ改行コードをつけたすような処理イメージですが
文末が改行コードのファイルに対しても処理しても問題ないので
今は全ファイルに上記のような処理をしたいという内容になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
コマンドにてテキストファイルに文字列の追加
UNIX・Linux
-
バッチファイルで改行の出力
UNIX・Linux
-
COPYコマンドで結合すると余計な改行コードができる
その他(プログラミング・Web制作)
-
-
4
ファイルの最後に文字列挿入
その他(プログラミング・Web制作)
-
5
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
6
複数テキストファイル連結について(改行文字の扱い)
UNIX・Linux
-
7
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
8
テキストファイルに改行コードを付加してレコードを分割したい。
その他(OS)
-
9
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
10
テキストファイルの結合+改行について
Excel(エクセル)
-
11
テキストファイルから最終行の抽出
Windows Me・NT・2000
-
12
Windowsのバッチファイルを利用しtxtファイルの指定のした位置に文字を追加する方法
その他(プログラミング・Web制作)
-
13
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
14
テキストファイルの最終行を削除したいのですが
その他(プログラミング・Web制作)
-
15
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
16
echoの出力の最後のスペースを除去したい
iOS
-
17
バッチでCSVを処理する時、空の項目があった場合
その他(プログラミング・Web制作)
-
18
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
19
バッチ処理での改行出力
UNIX・Linux
-
20
バッチ処理で追記コピーしたい
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル
-
Word 途中で勝手に改行してしま...
-
wordで均等割り付けをするとき...
-
Chr(13)とChr(10)の違いは?
-
PDFの改行URLを有効にす...
-
【エクセル】セル最後にある無...
-
エクセルでセル内改行の複数行...
-
英語圏の人々は英文に改行のス...
-
Excel セル内の最初と最後の改...
-
VBA フォームのテキストボック...
-
イミディエイトウインドウの最...
-
バッチで指定ファイルの文末に...
-
メールに添付する写真を並列さ...
-
EXCEL(VBA) 末尾の改行のみ削...
-
パワーポイントのテキストボックス
-
PCに表示された内容(文字)をコ...
-
履歴書の志望動機の所で、「ま...
-
短歌が1行で収まらない場合、...
-
Texに関する質問(文章中の数式...
-
棒グラフ 横軸の縦書き2列にし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Chr(13)とChr(10)の違いは?
-
wordで均等割り付けをするとき...
-
Word 途中で勝手に改行してしま...
-
【エクセル】セル最後にある無...
-
棒グラフ 横軸の縦書き2列にし...
-
VBA フォームのテキストボック...
-
パワーポイントのテキストボックス
-
PDFの改行URLを有効にす...
-
履歴書の志望動機の所で、「ま...
-
excelで勝手に改行されます
-
バッチで指定ファイルの文末に...
-
Tera Term のマクロでの改行コ...
-
エクセルでセル内改行の複数行...
-
Excel セル内の最初と最後の改...
-
Accessにインポートしようとす...
-
イミディエイトウインドウの最...
-
EXCEL(VBA) 末尾の改行のみ削...
-
短歌が1行で収まらない場合、...
-
Excel VBAで改行を含めたセルの...
-
PCに表示された内容(文字)をコ...
おすすめ情報