У меня есть много файлов .txt в каталоге. В каталоге также содержатся файлы .png и некоторые файлы .pdf. Я успешно конкатенировал .txt файлы с помощью этой команды:
@ECHO Off
SETLOCAL
for /r %%f in (*.txt) do (
echo.
type "%%f"
)>> output.doc
GOTO :EOF
Вышеуказанная команда была получена с одного из интернет-сайтов. Эта команда объединит файлы .txt в алфавитном порядке. Но я не хочу, чтобы это было так, я хочу, чтобы это было сделано к дате изменения или создания (изменение рекомендуется). У меня есть подсказка, что линия
for /r %%f in(*.txt) do (
должны быть изменены, чтобы объединить по дате.Я новичок в этой командной строке или пакетных сценариях, поэтому я не очень много знаю об этом. Как я должен это сделать. Спасибо всем за ответы.
Извините, что не включил этот вопрос в первый раз. У меня есть еще одно требование, основанное на другом вопросе, который я задавал ранее (Вопрос) У меня есть пакетный файл для объединения файлов .txt и для добавления двух строк поверх каждого файла (одна для записи имени файла без расширения и другая для записи даты, связанной с составным файлом).Может кто-нибудь, пожалуйста, измените приведенный ниже пакетный файл, чтобы объединить файлы .txt в порядке изменения даты и добавить две строки в верхней части каждого файла.
@echo off
SETLOCAL
for /r %%f in (*.txt) do (
echo File Name : %%~nf
FOR /f %%d IN ("%%~tf") DO echo Date : %%d
echo.
type "%%f"
) >> output_text.doc
GOTO :EOF
Каждая проблема решена окончательным пакетным файлом:
@echo off
setlocal enableextensions disabledelayedexpansion
set "root=%cd%"
>"output.doc" (
for /f "tokens=1,2,*" %%a in ('
robocopy "%root%\." "%root%\." *.txt /l /s /is /ts /ndl /njh /njs /nc /ns
^| sort
') do (
echo( %%~nc
for /f "tokens=1-3 delims=/" %%d in ("%%a") do echo %%f/%%e/%%d
type "%%~fc"
)
)