
お世話になります。
テキストファイルに保存した
リスト(各行に記述)からDOSコマンドバッチ処理で
・リスト記述文字列のタイトルのファイル名の
かつファイル内容にもその記述文字列が記述されているという
ファイルを得たいのですが
空白文字が含まれていると、全部の文字列が記述されず欠落します
空白文字の混じった文字列は部分的に欠けてしまい
うまくいきません。
空白文字の混じった文字列の処理に問題があるようです
お知恵を拝借できませんでしょうか?
サンプル
テキストファイルに
東京スカイツリー
横浜豚まんMAP.pdf
奈良 しかせんべい 検索
各行記述し改行してあります
バッチ処理で
東京スカイツリー.txt
横浜豚まんMAP.pdf.txt
奈良 しかせんべい 検索.txt の3つの別ファイル
(拡張子はtxt)を生成するのがメインテーマです
具体的には
ファイル名:東京スカイツリー.txt
ファイル記述内容:東京スカイツリー
ファイル名:横浜豚まんMAP.pdf.txt
ファイル記述内容:横浜豚まんMAP.pdf
ファイル名:奈良 しかせんべい 検索.txt
ファイル記述内容:奈良 しかせんべい 検索
となることを期待しています。
次のようなファイルとフォルダの設定で動作させてみました
フォルダの所在設定
C:\Users\MyPC\Desktop\みやげひんWORK
このフォルダ内に下記の2つのファイルを
おいてあります
1.ファイル名:みやげ.txt
・ファイル内容
東京スカイツリー
横浜豚まんMAP.pdf
奈良 しかせんべい 検索
と記述し、各行毎に改行
2.バッチファイル名:tenkai.bat
記述内容は次のようにしました
for /f %%a in (%1) do echo %%a > %%a.txt
*****************************************
以前テキストファイルに保存したリスト(各行)の
文字列をタイトルにした
フォルダを一括して作るバッチ処理を参考にさせていただき
見よう見まねで作って利用していた経験はあります。
makefolder.bat
for /f %%a in (%1) do md %%a
*****************************************
作業手順
みやげひん.txtファイルをドラッグして
tenkai.batにドロップすると
みやげひんWORKフォルダの中に
東京スカイツリー.txt
横浜豚まんMAP.pdf.txt
奈良.txtの ファイルがフォルダ内に生成されます
これまで、空白の入らない文字で作ったものは
得たい出力結果通りになっていたのですが
奈良(空白)しかせんべい(空白)検索 のような
文字間に空白を挟む物は
空白以前の文字しか読み込まれないようで
ファイル名: 奈良.txt
ファイル記述内容:奈良 のみ記述
となってしまいました
【得たい出力結果】
ファイルのタイトルは
ファイル内容に記述してある文字名で拡張子が.txt
ファイル内容はそれぞれのタイトルと同じ記述
具体的には
ファイル名:東京スカイツリー.txt
ファイル記述内容:東京スカイツリー
ファイル名:横浜豚まんMAP.pdf.txt
ファイル記述内容:横浜豚まんMAP.pdf
ファイル名:奈良 しかせんべい 検索.txt
ファイル記述内容:奈良 しかせんべい 検索
です
問題点としては
奈良 しかせんべい 検索と記述した行は
空白があるためか
タイトルが
ファイル名: 奈良.txt
ファイル記述内容:奈良 のみ記述で
空白以降の
(空白)しかせんべい(空白)検索 の文字
全部が表記されない
ということです
どなたか良い解決法をご教示いただければ幸いです
よろしくお願いいたします
No.1ベストアンサー
- 回答日時:
せっかくのfor /f なのでオプションを付けてみては?
旧:for /f %%a in (%1) do echo %%a > %%a.txt
↓
案1:for /f "delims=" %%a in (%1) do echo %%a > "%%a".txt
案2:for /f "delims=" %%a in (%1) do echo "%%a" > "%%a".txt
でいいと思いマダガスカル。
(オプション内容はデリミタを指定。デフォは「,」と「 」だったハズ)
ファイル出力のあたりが微妙。案2だとダブルクォートも一緒に出しそう。
案1で全部いけたらいいなぁ……
回答の意味&内容違ってたらゴメンあそばせ
yaihakiseru.さま
ありがとうございます。
/fでオプション?
なるほど
/f テキストファイル内の文章に対してトークンを取り出して代入する
の用法に気がつけばよかったのですね
ご提案いただいたもので試しました。
旧:for /f %%a in (%1) do echo %%a > %%a.txt
↓
案1:for /f "delims=" %%a in (%1) do echo %%a > "%%a".txt==>こちらは期待通りの結果
案2:for /f "delims=" %%a in (%1) do echo "%%a" > "%%a".txt
==>こちらはやはり” ”で挟まれ表示となってしまいました
したがいまして
デリミタ指定、ダブルコーテーションなしでいけます
助かりました。
しかたなく、裏でエクセルでチマチマVBいじって道草食ってましたが
この解決法で、簡単一気に作業がはかどります
ご教示いただきありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
COPYコマンドで結合すると余計...
-
psqlでエラーログをとりたい
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
VBSでフォルダ内のテキストファ...
-
テキストファイルの指定した行...
-
FTPのコマンド「mput」について
-
テキストの保存
-
多数のサブディレクトリ内のフ...
-
3つ以上のテキストファイルをコ...
-
【C++】 ファイルの名前を変更...
-
PostMessageで外部のexeへメッ...
-
コモンダイアログを使用してフ...
-
テキストファイルのタブをカン...
-
ファイルをテキストエディタで...
-
ファイルのワイルドカードについて
-
C言語、ファイルの存在チェック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.txtではなく.logの方が良いの...
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
エクセルの各セルの内容をそれ...
-
拡張子を元に戻す
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
COPYコマンドで結合すると余計...
-
renameコマンドについて
-
バッチファイルで文字列削除に...
-
テキストファイルで提出とは?
-
ファイル名の一部をbatで変更し...
-
forfilesで検索したファイルを...
-
バッチファイル 複数ファイル...
-
Windowsのバッチファイルを利用...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
ファイル内容の修正、行削除に...
おすすめ情報