A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1 です。
>最後の一行どういう命令か全く理解できていませんw
締め切っていないので説明しておきますね。
>REM 各テキストファイルの末尾行に区切り文字を加えてマージ
>FOR /F "usebackq delims==" %%i IN (`dir /b *.txt`) DO @type %%i>>all.txt & echo %delim%>>all.txt
FOR /F "usebackq delims==" %%i IN (`コマンド1`) DO コマンド2 %%i
これは「コマンド1の実行結果分、DO以下のコマンド2を繰り返す」と言う意味です。
%%i にはコマンド1の結果が入ります。
今回の場合、コマンド1は dir /b *.txt なので、dirコマンドで取得したテキストファイルの「名前だけ」が %%i に入ります。
1ファイルだけなら1回だけDO以下のコマンド2を処理するし、複数ファイルあるなら、そのファイル数分、繰り返しDO以下のコマンド2を処理します。
DO以下ののコマンド2
type %%i>>all.txt & echo %delim%>>all.txt
は
「%%i(dir結果のテキストファイル)をall.txtの末尾に追記、その後で更に、%delim%(区切り文字が入った変数)をall.txtの末尾に追記」と言う意味です。
No.1
- 回答日時:
ファイル名やファイル数が、常に固定であれば、「■■■■■■■■■■■■■■■」が1行だけ格納されているファイル delim.txt を作っておいて、
copy a.txt + delim.txt + b.txt + delim.txt ...(中略)... all.txt
で、できます。
この場合、コマンドを生成しないといけないので、ファイルが沢山ある場合は面倒ですけど。
ファイル数、ファイル名が不定の場合は、以下のようなバッチファイルを同じフォルダにおいて実行すれば行けると思います。
(まあ、常にこっちを使えばよいわけですが。。。)
「REM *****..」以下の行をコピーして、addDelimMerge.bat と言うファイルを作成してください。
最後のFOR文は1行です。回答が折り返していたら1行に修正して使用してください。
以下、バッチファイルの中身です。
REM ******************************************************
@echo off
REM バッチ名:addDelimMerge.bat
REM 機能:各テキストの末尾行に区切り文字を加えてマージする
REM ******************************************************
REM 区切り文字の変数
set delim=■■■■■■■■■■■■■■■
REM 前回のall.txtを消しておく
del all.txt
REM 各テキストファイルの末尾行に区切り文字を加えてマージ
FOR /F "usebackq delims==" %%i IN (`dir /b *.txt`) DO @type %%i>>all.txt & echo %delim%>>all.txt
最初はデスクトップにbatファイルを作成実行していたために動作せず。それにやっと気付きcd命令を付加して実行。all.txtができたと喜んだのも束の間で、連結は正常に出来ているのですが区切り文字が挿入されていませんでした。
調べたところ、テキストファイルは文字コードがUTF-8であり、コマンドで付加した文字はシフトJISで、UTF-8では何も表示されなかったようです。とりあえず区切り文字をアスキーの「----------」に変更しましたところ正常に出来ました(*⌒▽⌒*)
しかしコマンドプロンプトもとても奥が深いのですね。目的は達したはいいのですが、最後の一行どういう命令か全く理解できていませんwこれを気にもう少し勉強したいと思います。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
【DOSコマンド】for文の中で変...
-
ubuntuで、テキストの文字を別...
-
UNIXで、ディレクトリを比較し...
-
【Linux】findコマンドの表示順
-
renameコマンドでファイル名か...
-
cshでfindした一覧をタイムスタ...
-
dosバッチを使用して昇順に
-
スラッシュ"/"を削除したい
-
sol10 tcsh日本語カタログ変更方法
-
バッチで特定文字が含まれる先...
-
○行目から□行目だけを表示する...
-
*.txtファイルの最終行だけ参照...
-
ファイルの先頭に文字を追加す...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
エクセルの表にヘンな枠が・・・
-
SONYの音楽ソフト「x-アプリ」...
-
ラズパイで『’test.service’をs...
-
Linux環境 grepで改行コード(CR...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
renameコマンドでファイル名か...
-
バッチで特定文字が含まれる先...
-
【Linux】findコマンドの表示順
-
【DOSコマンド】for文の中で変...
-
スラッシュ"/"を削除したい
-
Linuxで*をつかってファイル移...
-
*.txtファイルの最終行だけ参照...
-
CentOS/リダイレクションに改行...
-
UNIXで、ディレクトリを比較し...
-
○行目から□行目だけを表示する...
-
Windowsコマンドラインで文字列...
-
フォルダ内のファイル名を取得する
-
行の挿入をおこなう。awk?
-
ファイルの先頭に文字を追加す...
-
DOSバッチにて外のファイルの指...
-
標準出力とリダイレクトを同時...
-
コマンドプロンプト net user...
-
コマンドプロンプトでUSBメモリ...
-
OSXで常に最後に表示される文字...
おすすめ情報