cmdでtxtファイルの生成方法とフォルダ内への作成方法

このQ&Aのポイント
  • cmdコマンドを使用して、txtファイルを生成する方法について説明します。
  • 特定のフォルダ内にtxtファイルを生成する方法を説明します。
  • 具体的なコマンド例を示して、理解しやすく説明します。
回答を見る
  • ベストアンサー

cmdでtxtファイルの生成

思い出集  ∟旅行   ∟写真  ∟映画   ∟写真  ∟温泉   ∟写真 上記のような「フォルダ構造」があります。 それぞれの「写真」フォルダ内に、直前のフォルダ名をファイル名としたtxtファイル(旅行.txt、映画.txt…)を生成したいと考え、下記のようなcmdコマンドを書き、「思い出集」フォルダをカレントディレクトリにして実行してみました。 FOR /D %A IN (*) DO echo a > %A.txt フォルダ名を取得するまでは良いのですが、txtファイルが生成される場所がカレントディレクトリである「思い出集」フォルダになってしまいます。 これをそれぞれの「写真」フォルダ内に生成するには、どのようなコマンドを書いたらよいのでしょうか? よろしくお願いいたします。

  • zyaba
  • お礼率46% (261/566)

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.3

#2 です。 >ご教示いただいたコマンドをただ貼り付けしたファイルでは正常に動作しませんでした(cmdを立ち上げ直接記述するともちろんうまくいきます)。 > >バッチもしくはcmdファイルとして実行する際は何か特別な記述が必要なのでしょうか? はい。 バッチにする時は、FOR文の %A は %%A 、つまりパーセント2つにしてください。 そうしないと、「Aの後に何か続く変数名」を探してしまい、エラーになります。 (確か、そう言う事だったと思います) 逆にコマンドプロンプトから直接実行する時は、今回のやりとりの通り、パーセントは1つです。

zyaba
質問者

お礼

どうもありがとうございました! 無事実行することができました!

その他の回答 (2)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

>FOR /D %A IN (*) DO mkdir %A\写真 echo a > %A\写真\%A.txt > >上記のような2つの命令を出すにはどのようにすればよろしいでしょうか? & を使って連続実行させるか、括弧を使って改行します。 FOR /D %A IN (*) DO mkdir %A\写真 & echo a > %A\写真\%A.txt または FOR /D %A IN (*) DO ( mkdir %A\写真 echo a > %A\写真\%A.txt ) それと、これは老婆心ながら。 今後フォルダを増やして、再度このコマンドを実行すると、既存のフォルダは上書きされませんが、テキストファイル自体は上書いてしまいますので、アペンドでリダイレクトした方がよいかと。 ↓ echo a >> %A\写真\%A.txt

zyaba
質問者

お礼

ご回答ありがとうございます! ご指摘の通りそのようなケースが想定されるので>>を使用します。 このコマンドをバッチもしくはcmdファイルとして保存し、カレントディスク内でダブルクリックすると実行されるようにしたいと思ったのですが、 ご教示いただいたコマンドをただ貼り付けしたファイルでは正常に動作しませんでした(cmdを立ち上げ直接記述するともちろんうまくいきます)。 バッチもしくはcmdファイルとして実行する際は何か特別な記述が必要なのでしょうか?

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

実際に同じ構造のフォルダを作って試してはいませんが、 FOR /D %A IN (*) DO echo a > %A\写真\%A.txt で大丈夫なはずです。

zyaba
質問者

お礼

ありがとうございます!教えて頂いた方法で出来ました! よく見ると「写真」フォルダが無いディレクトリも存在していたため、 先に「写真」フォルダを作成してから、「写真」フォルダ内にtxtファイルを生成したいと考え、下記のコマンドを書いてみましたが、うまく起動しませんでした。 FOR /D %A IN (*) DO mkdir %A\写真 echo a > %A\写真\%A.txt 上記のような2つの命令を出すにはどのようにすればよろしいでしょうか?

関連するQ&A

  • 同フォルダの中にファイルを生成するには?

    exeファイルと同じフォルダのなかに、txtファイルを生成したいのですが, どうすればいいのでしょうか? ディレクトリを取得すればいいのか,それとも直接生成できる関数があるのか よくわかりません。 よろしくお願いします。

  • バッチファイルでファイル生成の件

    OS :WindowsXP sp3 バッチファイルのコーディングのアドバイスをいただけませんでしょうか? バッチファイル名:aaaa.bat バッチファイル起動時 aaaa.bat a01 a02 a03 a04 ・・・・・4つの引数を使用 バッチファイルのソース net \\(ipアドレス)\test\a ・・・・ipアドレスのファイルサーバーにマウント echo test >>testtxt.TXT ・・・・testtxt.txtのファイルを生成 この状態で引数4つ目を使用してtesttxta04.txtというテキストを生成したいと思っています。 コーディングではどのようにすればいいのかアドバイスいただけませんでしょうか?

  • ファイル名が記入されたファイルを読み込んでcdする

    ファイル名が記入されたファイルを読み込んでカレントディレクトリを変更するにはどうしたら良いでしょうか?   具体的に申し上げると、    カレントディレクトリに filepass.txt というファイルが存在し、 中身には、例えば、 C:\Software と書かれています。   MATLABで、 filepass.txtを読み込み、 中に書かれている、 ディレクトリ名に、   カレントディレクトリを変更する(cd) にはどうしたらよいでしょうか?

  • バッチファイルについて

    @cmd /k 上記の内容で「a.bat」というファイル名で保存しました。 この保存したファイルをダブルクリックすると、バッチファイルが格納されてるフォルダのパスがコマンドプロンプト上に表示されます。 パス表示後に、いろいろな動作(「echo~」など)を実行したいと思っているんですが、うまくいきません。 どうやら一番上の「@~」を記述したものは、そのあとに「echo~」などを記述しても実行してくれないみたいです。 「@cmd /k」実行後に何か(「echo~」など)を実行するにはどうしたらいいですか?

  • cat `find ./` > for_print.txt にファイル名を入れたい!

    カレントディレクトリ以下のファイルを連結したいのですが、 cat `find ./` > for_print.txt に「ファイル名」と、 あと、「区切り」がわかるように ******************************** を入れたいのですが、 どうしたら良いでしょうか?

  • コマンドプロンプトからのcmd実行について

    現在VBSでオブジェクトを定義しrunを使いcmd経由で他のバッチ・VBS・ソフトの起動をやっています。 ふととあるパスが実行できませんでした。 そこで別途個別にコマンドプロンプトだけで実行してみましたがやはりうまく処理できません。 [echo.bat] echo test pause [コマンドプロンプト] rem その1 cmd /K c:\temp\a\echo.bat rem その2 cmd /K C:\Temp\(a\echo.bat その1の結果 C:>cmd /K C:\Temp\a\echo.bat C:>echo test test C:>pause 続行するには何かキーを押してください . . . その2の結果 C:>cmd /K C:\Temp\(a\echo.bat 'C:\Temp\' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:> 上記のように1は正常に処理され2はうまく処理されません。 解決策をひたすら検索したのですが見つからず なんとなくだいたい分かったのが一部『(』や『)』や『&』や『@』や『^』などの記号が混じるとどうやらうまく処理できないようです。 なぜ処理できないのか?と、如何すればこれを回避して実行できるか分かる方がいればよろしくお願いします。 備考: (現状の緊急回避として記号のあるパスは記号のないパスから経由batを生成する方法を思いつきましたが自分で馬鹿だと思います) (経由バッチの中身が"C:\Temp\(a\echo.bat"ならば実行できるから) また、cmd /K "C:\Temp\(a\echo.bat" では実行できませんでした。 OSはXPです。コマンドプロンプトヴァージョンは(Microsoft Windows XP [Version 5.1.2600])です

  • コマンドプロンプトによるファイル名一括変換

    コマンドプロンプトで、サブディレクトリを含めたファイル名の一括変換 をしたいのですが、次のコマンドを叩いたら、「コマンドの構文が間違っています」と出てしまいました。どこがおかしいのでしょうか? カレントディレクトリの中の「*.txt」ファイルをすべて「*.doc」にしたい場合↓ for /r /d %i in (*) do ren %i\*.txt *.doc よろしくお願いします。

  • 管理者権限でのコマンドプロンプトにて

    .cmdのファイルを他パソコンで実行したいのですが 管理者権限ですと、カレントディレクトリ?がC:\Windows\system32 になってしまいコピーに失敗してしまうのですが 管理者権限で.cmdを実行しているフォルダにあるtest.txtをC:\にtest.txtを コピーするコマンドはどう記述すればよいのでしょうか? ■管理者権限で実行した場合 C:\Windows\system32>copy test.txt C:\ 指定されたファイルが見つかりません。

  • ファイルを自動生成させたいのですが・・・

    すいません初心者ですが・・・ 設置しているCGIと同じディレクトリに「test.txt」というファイルを生成したい場合、 CGIに、 open IN, ">test.txt"; close IN; と記述しましたが、test.txtが生成されません。 何か問題があるのでしょうか? 最終的には、すでにtest.txtと言うファイルが存在しない場合はなにもせず、 、存在しない場合はtest.txt(読み書き可能のファイル)を自動生成するような仕組みを作りたいのです。 使っているCGIはメールフォームCGIで、回答結果をtest.txtファイルに蓄積していくのですが、 上記のような機能を追加させyたいのです。

    • ベストアンサー
    • CGI
  • batファイルでrenameができません。

    Windowsのbatファイルでrenameをするにはどうすればよいでしょうか? カレントディレクトリ └ A というディレクトリ構造があって、Aの中には「a.txt」があるとします。 カレントディレクトリから、 「rename "./a/A.txt" B.txt」 と書いてあるbatファイルを起動しても、「a.txt」の名前が変更されません。 「指定したパスが見つかりません。」と出てきてしまいます。 ダブルクォーテーションを取ったりつけたり、絶対パス、相対パスを書いたりと いろいろ試しましたがだめでした。 何か方法はないでしょうか?

専門家に質問してみよう