배치 파일의 출력을 현재 디렉터리로 보냅니다.

배치 파일의 출력을 현재 디렉터리로 보냅니다.

.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

상위 디렉터리까지의 경로에 대한 문자열을 얻습니다(드라이브가 지정됨).

관련 정보