
Я наткнулся на вопрос 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
.