コマンドプロンプトで下記の処理がしたいです。
複数のフォルダに同じファイル名(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,
どなたか、詳しい方お教え頂ければと思います。
宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
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 &" の処理を行いました。"
'---------------------------------------------------------
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を起動すれば、期待通りの結果になるのではと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
同一フォルダ内の別ブックから...
-
集めたシートのシート名を変更...
-
VBA フォルダ名に特定の文字を...
-
excelマクロ 冒頭3文字が一致す...
-
ファイルとフォルダのどちらも...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBA:フォルダ内のファイ...
-
PHPで、指定フォルダ(サブフォ...
-
フォルダ内のファイルの作成日...
-
Excelのハイパーリンクについて...
-
Dreamweaverでイメージを挿入す...
-
VBA 最新のフォルダ取得
-
VBScriptで作るファイル移動プ...
-
C++のコンソールアプリケーショ...
-
VBAで行うフォルダ・ファイル検...
-
Let’s Encryptでwebroot設定な...
-
exclude xcopy 除外フォルダ指...
-
ツリービューを使って、エクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
デスクトップの画像をhtmlに表...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
Access VBA で フォルダ権限...
-
C ファイル出力で、フォルダが...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報