將批次檔的輸出傳送到目前目錄

將批次檔的輸出傳送到目前目錄

我有一個.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

它取得到父目錄的路徑字串(指定磁碟機)

相關內容