• 締切済み

コマンドプロンプト

コマンドプロンプトで下記の処理がしたいです。 複数のフォルダに同じファイル名(INDEX.txt)が存在しております。 フォルダA   INDEX.txt フォルダB   INDEX.txt ... フォルダZ   INDEX.txt INDEX.txtの中身以下の状態です。 (フォルダBならAの部分がB)  0001,フォルダA,  0002,フォルダA,  ...  0100,フォルダA, これに対して一括の処理で下記のように1行目に「0000」を書き加えたいです。  0000  0001,フォルダA,  0002,フォルダA,  ...  0100,フォルダA, どなたか、詳しい方お教え頂ければと思います。 宜しくお願い致します。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 ここは、Office 系ですから、あくまでも、その範囲で回答しておきます。なお、少し書き換えれば、Excel VBAでも実行可能です。(どちらかというと、そのほうが楽かもしれません) 以下のコードを、メモ帳に貼り付け、ファイル名を、SrchFOLD(任意)、拡張子を、.vbs と付けてください。このプログラムの置き場所は、index.txt ファイルの上にある、上位フォルダにおいてください。すべての下位にあるサブフォルダから、INDEX.TXtファイルをを探して、一行を加える処理をします。 現行では、「0000」と付けるだけですが、当然、「0000,フォルダA, 」というスタイルも可能です。エクスプローラなどから、クリックすればよいです。 なお、質問内容をみると、"0000"は、全角スペースが一つ入っているようですから、" 0000" に書き換えてもよいです。既に、0000と入っているものは、入れないというコードに書き換えることも可能です。 また、コマンドプロンプトの場合は、そのファイルがある場所で、>Wscript.exe srchFOLD として、実行(Enter)させれば、実行されます。 もちろん、MS-DOS ONLY なら、この方法はうまくいきませんし、質問のカテゴリそのものが違うことになります。 '--------------------------------------------------------- 'SrchFOLD.vbs Dim WshShell Dim CurDir Dim objFS Dim objFolders Dim sbfolder Dim objFile Dim objText Dim myText Dim i Const nFILE = "INDEX.TXT" Set WshShell = CreateObject("WScript.Shell") CurDir = WshShell.CurrentDirectory Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolders = objFS.GetFolder(CurDir) For Each sbfolder In objFolders.SubFolders If objFS.FileExists(sbfolder & "\" & nFILE) Then Set objText = objFS.OpenTextFile(sbfolder.Path & "\" & nFILE) myText = objText.ReadAll objText.Close myText = "0000" & Chr(13) & Chr(10) & myText Set objText = objFS.CreateTextFile(sbfolder.Path & "\" & nFILE) objText.Write (myText) objText.Close i = i +1 End If Next MsgBox i &"個の"& nFILE &" の処理を行いました。" '---------------------------------------------------------

  • ann_dv
  • ベストアンサー率43% (528/1223)
回答No.2

コマンドプロンプトと言うよりはバッチファイルですね。 (いずれにしても、カテ違いな気がしますが。。) 全てのフォルダが同一フォルダ配下である事を前提として、 親フォルダ直下に以下の2つのバッチファイルを作成するのはいかがでしょうか。 (私もバッチの作成は不慣れなもので、もっと単純な方法がありそうな気がしてなりません。。) ===== [ main.bat ] ===== for %%A in (フォルダA フォルダB フォルダC ... フォルダZ) do call sub.bat %%A ===== [ main.bat ] ===== ===== [ sub.bat ] ===== cd %1 echo 0000 > INDEX.temp type INDEX.txt >> INDEX.temp del INDEX.txt ren INDEX.temp INDEX.txt cd .. ===== [ sub.bat ] ===== これでmain.batを起動すれば、期待通りの結果になるのではと思います。

  • dondoko4
  • ベストアンサー率12% (1161/9671)
回答No.1

DOSのことでしょうか。

関連するQ&A

  • コマンドプロンプトで、ファイルを移動したい

    お世話になります。 コマンドプロンプトでa.txtをYYYフォルダに移動したいと考えております。 しかしながら、YYYフォルダは、存在するかわからない状態です。 YYYフォルダが存在すれば、YYYフォルダに移動、YYYフォルダが存在しなければ、YYYフォルダを新規作成して、その中に移動としたいのです。 下記、文をいれても当然実現できず困っています。 move C:\MyDir\a.txt C:\YYY お手数ですが、何卒よろしくお願いします。

  • コマンドプロンプトの繰り返し処理について

    コマンドプロンプト初心者です。 今回、同じファイルをWebサーバー上の複数のフォルダにアップロードするバッチを組みたいのですが、「for」による繰り返し処理がうまくできません。 さらに具体的にいいますと「public_html/10」「public_html/11」「public_html/12」「public_html/13」それぞれに「AAA」というフォルダを作り、その中に「BBB.txt」というファイルをアップロードしたいのです。 なお、「public_html/10」に「AAA」というフォルダを作り、その中に「BBB.txt」というファイルをアップロードをおこなう、という一度だけの処理はできています。ですが、forを使い、繰り返し作業をおこなおうと試みるも、うまくいきません。 以下が作成したFTPコマンドです。 ------------------------------ open XXX.XX.XX.XX name password For /L %%a in(10,1,13) do ( cd /public_html/%%a mkdir AAA cd /public_html/%%a/AAA put C:\BBB.txt BBB.txt) EXIT       ------------------------------ お手数ですが、ご教授いただけますと幸いです。 よろしくお願いいたします。

  • コマンドプロンプトでFTPでエラー

    FTPコマンドプロンプトについてお聞きしたいです。 フォルダの中に 01.bat、01.txt、index.htmlが入っています バッチの中身は ftp -s:ftp00.txt テキストの中身は open サーバー名 ユーザー名 パスワード asc put index.html disconnect bye これを実行したら以下の様になったのですが、なにが原因なのでしょうか? スクリプト ファイル ftp00.txt を開くときにエラーが発生しました。 それともう一つ質問があるのですが、 手動でFTP情報をコマンドプロンプトに入力していったら ホスト接続完了→ユーザー名完了→パス入力のところで なぜかキーボードが入力できなくなってしまいます。 なぜでしょうか? osはvistaです。

  • コマンドプロンプトで

    コマンドプロンプトで AフォルダとBフォルダがあるとします。Aフォルダ内のCファイル以外のファイルをBフォルダに移動する(move?)ということはできますでしょうか? 初歩的な質問かも知れませんがよろしくお願いします。

  • コマンドプロンプトでテキストの引き算をする方法

    コマンドプロンプトで2つのテキストファイルの引き算をする方法があれば、ご教授いただきたいです。 A.TXT --- 11111 22222 33333 44444 B.TXT --- 33333 11111 55555 A.TXTからB.TXTを引き算して、 --- 11111 44444 を出力したいです。 エクセル上でなんとかならなくもないのですが、1万件単位で何度もチェックをする予定のため、コマンドプロンプトからコマンド一発でできる方法はないかと思い、質問させていただきました。 よろしくお願い致します。

  • コマンドプロンプトでのファイル操作について

    コマンドプロンプトでのファイル操作について、ご存知のかたどうか教えてください。 a.txt b.txtという2つのファイルがあるとします。 <a.txtの内容> 1111 2222 3333 <b.txtの内容> aaaa bbbb cccc 上記の2つのファイルを読み取りc.txtというファイルへ以下のように 出力したいのですが、コマンドプロンプト(batでも問題ありません) にてできるのでしょうか? <c.txtの内容> 1111,aaaa 2222,bbbb 3333,cccc ご教授のほど、宜しくお願いします。

  • コマンドプロンプトについて

    コマンドプロンプトについてご教授ください。 自分の端末上のCドライブ直下に『copytest』フォルダを作成し、そのフォルダ内に『abc.txt』を作成しようとしていますが、一度に作成できるのでしょうか?

  • コマンドプロンプト copyができません

    こんにちわ。 コマンドプロンプトのcopyコマンドについて質問させていただきます。 下記(1)~(4)処理内容のバッチファイルを作成しました。 デスクトップにある転送データ.txtを(2)、(3)、(4)の各workフォルダへコピーする処理です. (2)、(3)には正常にコピーされますが、なぜか(4)だけコピーされません。 (1)cd C:\Documents and Settings\XXX\デスクトップ (2)copy 転送データ.txt D:\work (3)copy 転送データ.txt C:\work (4)copy 転送データ.txt C:\Documents and Settings\XXX\デスクトップ\work どなたかご教授いただけますでしょうか? 環境 WindowsXP SP3

  • コマンドプロンプトで

    コマンドプロンプトで、  findstr /n aaaa test1.txt > test2.txt とすると、検索した"aaaa"の行がtest2.txtに保存されますが、  findstr /n aaaa test1.txt > test1.txt とするとtest1.txtのデータがなくなります。 これは何故かということと、検索結果を検索したファイルに保存する方法を教えてください。 お願いします。

  • コマンドプロンプトで

    コマンドプロンプトで dir > list.txt と書いたbatファイルを作成し実行すると、中にあるフォルダ・ファイルの一覧ができますが、中にあるフォルダ名のフォルダ・ファイル名までは取得することができません。 一番下フォルダのファイル名まで取得する方法はありますでしょうか? よろしくお願いします。

専門家に質問してみよう