0

プログラミングの経験はありませんが、次のことをしたいと考えています。

最大 10 個のフォルダーからマージするファイルを選択できるようにしたいと考えています。選択が行われると...たとえば、a、b、およびdとしましょう。プログラムは、フォルダー1〜10からa、b、およびdをマージし、10個のフォルダーからの出力を1つのファイルにマージします.....

これは可能ですか?これをプログラムする最良の方法は何ですか?

フォルダ #1

ファイル A - マージ ファイル B - マージ ファイル C ファイル D - マージ

フォルダ #2

ファイル A - マージ ファイル B - マージ ファイル C ファイル D - マージ

フォルダ #3

ファイル A - マージ ファイル B - マージ ファイル C ファイル D - マージ

フォルダ #4

ファイル A - マージ ファイル B - マージ ファイル C ファイル D - マージ

フォルダ #10

ファイル A ファイル B ファイル C ファイル D

4

2 に答える 2

0

これはあなたがしたいことですか?:

@Echo OFF

:: By Elektro H@cker

Set "folder=C:\Users\Administrador\Desktop\Test"

Echo Selected Folder: "%FOLDER%"
Set /P "files=Select files to merge (Example: "File1.txt" "File2.txt" "File3.txt") >> "


For %%@ in (%files%) Do (
    For /R "%FOLDER%" %%# in (*) DO (
        IF /I "%%@" EQU "%%~nx#" (call Set "Files_to_merge=%%Files_to_merge%% "%%#"+")
        )
    )
)


Copy /A %Files_to_merge:~0,-1% ".\output_file.txt"
pause&Exit

PS: コピー コマンドの形式を、テキスト ファイルの場合は /A、バイナリ ファイルの場合は /B に変更することを忘れないでください。

コマンド出力:

>Selected Folder: "C:\Users\Administrador\Desktop\Test"
>Select files to merge (Example: "File1.txt" "File2.txt" "File3.txt") >>

>file1.txt file2.txt file3.txt

C:\Users\Administrador\Desktop\Test\file1.txt
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file1.txt
C:\Users\Administrador\Desktop\Test\file2.txt
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file2.txt
C:\Users\Administrador\Desktop\Test\file3.txt
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file3.txt
        1 file(s) copied(s).

Presione una tecla para continuar . . .

Output_file.txt の内容:

Content of "File1.txt" in first dir

Content of "File1.txt" in firstsub-dir

Content of "File2.txt" in first dir

Content of "File2.txt" in firstsub-dir

Content of "File3.txt" in first dir

Content of "File3.txt" in firstsub-dir
于 2012-11-27T09:58:25.577 に答える
0

Windows の追加演算子 >> をコマンド ラインから使用して、マージするすべてのファイルを一覧表示することができます。

Folder1\fileA.txt >> Folder10\merge.txt
Folder2\fileB.txt >> Folder10\merge.txt
Folder2\fileC.txt >> Folder10\merge.txt
Folder3\fileA.txt >> Folder10\merge.txt

バッチ プログラムでユーザーにファイルを要求し、それを特定の場所にマージする場合は、次のようにすることができます...

:while1
    SET /P file=Please enter file name
    if NOT (%file%) == () (
        echo %file%
        %file% >> Folder10\merge.txt
        goto :while1
    )

通常、ファイル操作タスクがある場合は、プログラミング言語よりもスクリプト言語 (バッチ、perl、powershell など) が適しています。Windows で非常に単純なことを行う場合は、通常、バッチで作業を完了できます。それ以外の場合は、perl または powershell を使用することをお勧めします。

プログラミングの経験がまったくない場合は、powershell チュートリアルhttp://www.powershellpro.com/powershell-tutorial-introduction/をいくつか読んで、その言語の学習に時間を費やすことをお勧めします。初期投資が多すぎる場合は、最初に行ったように追加コマンドを .bat ファイルに入力して一度実行することをお勧めします。おそらく、最初のスクリプトを作成してデバッグするよりも高速です。

于 2012-11-27T00:38:39.043 に答える