У меня есть скрипт .bat который объединяет некоторые текстовые файлы в один большой файл. Я хотел бы, чтобы полученный файл был перемещен в текущий каталог, а не в жестко заданный путь.

Вот мой сценарий:

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

Я сохранил это в папке "Отправить", так что я могу выбрать кучу файлов в DirectoryA, щелкнуть правой кнопкой мыши и "отправить" мой пакетный скрипт. Это работает, но я хочу, чтобы файл bigfile.txt находился в том же каталоге, что и все маленькие файлы. Идеи?

2 ответа2

1
@echo off
    setlocal enableextensions disabledelayedexpansion

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

    shift
    goto loop

Добавьте выходные данные в файл (bigfile.txt) на том же диске и в том же пути, что и исходный файл.

0

это может быть достигнуто путем замены

%cd%\bigfile.txt

с

%cd:~0,2%%~p1

он получает строку с путем до родительского каталога (с указанным диском)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .