Сортировка и копирование текстовых файлов в один файл из командной строки приводит к ошибке

Сортировка и копирование текстовых файлов в один файл из командной строки приводит к ошибке

Я наткнулся на вопрос 217394, в котором объясняется, как копировать файлы, отсортированные по алфавиту, в один файл. Попытка реализовать команду самостоятельно выдала следующее сообщение об ошибке: Система не может найти указанный файл.
Команда, которую я пытаюсь выполнить, здесь:

для /f %i в ('dir /ad /on /b O:\OrdersExport\Order*.txt') сделать @type %i >> C:\Users\Admin\Documents\OrderImport.txt

Ошибка не появляется, если я сначала перехожу в нужную папку:

С:\>О:
C:\>cd OrdersImport

Мне просто нужно скопировать одну строку из места назначения в этот файл.

Кстати, если это имеет значение, O: — это отображаемая папка по сети.

решение1

Команда dirвыводит только имена файлов. Поэтому %iпеременная заполняется относительными путями. Если команда не запущена из нужного каталога, используйте %~fiрасширение относительного пути до абсолютного.

for /f "tokens=*" %i in ('dir /a-d /o-n /b "O:\OrdersExport\Order*.txt"') do (
    @type "%~fi" >> "C:\Users\Admin\Documents\OrderImport.txt"
)
  • tokens=*обрабатывает пробелы в именах файлов, поэтому %iвсегда выводит целую строку dir.

Связанный контент