バッチファイルの出力を現在のディレクトリに送信する

バッチファイルの出力を現在のディレクトリに送信する

いくつかのテキスト ファイルを 1 つの大きなファイルに連結するスクリプトがあります.bat。結果のファイルをハードコードされたパスではなく現在のディレクトリに移動させたいと思います。

これが私のスクリプトです:

@echo off
:loop
if ($1) == () goto end
more +9 %1% >> %cd%\bigfile.txt
shift
goto loop
:end

これを「送信先」フォルダに保存しておいたので、DirectoryA で複数のファイルを選択し、右クリックしてバッチ スクリプトに「送信」することができます。これでうまくいきますが、bigfile.txt をすべての小さなファイルと同じディレクトリに置きたいです。アイデアはありますか?

答え1

@echo off
    setlocal enableextensions disabledelayedexpansion

:loop
    if "%~1"=="" goto :eof
    more +9 "%~1" >> "%~dp1bigfile.txt"

    shift
    goto loop

出力をbigfile.txtソースファイルと同じドライブとパスのファイル( )に追加します。

答え2

置き換えることで達成できる

%cd%\bigfile.txt

%cd:~0,2%%~p1

親ディレクトリまでのパスの文字列を取得します(ドライブが指定されています)

関連情報