2012-04-13 8 views
1

フォルダ内のすべての.txtファイル(バッチファイルが置かれているフォルダ)をループする単純なバッチファイルを設定し、それらのファイルのそれぞれに同じ見出し行を付けます。見出し行は別のテキストファイルで定義されています。フォルダをループしてテキストファイルを追加する.batファイル

したがって、たとえば、のは、私が持っているとしましょう:

c:\SomeFolder\Headings.txt 
    --> I want to add this to the top of each of the text files in: 

c:\SomeFolder\FolderWithTextFiles\ 
    --> ...by running the batch file: 

c:\SomeFolder\FolderWithTextFiles\BatchFile.batch 

エクストラノート:
- サブフォルダWindowsバッチが場所にファイルを編集するネイティブコマンドを持っていない

答えて

2

をループする必要はありません(それにデータを追加する以外)。したがって、各ファイルに対して、目的のコンテンツを含む一時ファイルを作成し、元のファイルを削除し、一時ファイルの名前を元のファイル名に変更する必要があります。削除と名前の変更は、1回のMOVEコマンドで実行できます。

@echo off 
set "header=c:\SomeFolder\Headings.txt" 
set "folder=c:\SomeFolder\FolderWithTextFiles" 
set "tempFile=%folder%\temp.txt" 
for %%F in ("%folder%\*.txt") do (
    type "%header%" >"%tempFile%" 
    type "%%F" >>"%tempFile%" 
    move /y "%tempFile%" "%%F" >nul 
) 
関連する問題