Объединить текстовые файлы, используя правый клик и пакетный файл
787
Sean
Я добавил пакетный файл в контекстное меню «Отправить», которое открывает командную строку в текущем каталоге. Команда для объединения всех TXT-файлов в этой папке и любых подпапках не выполняется должным образом при использовании из пакетного файла (создает 0-байтовый файл с именем output.txt), но работает правильно, если я ввожу его в cmd незамедлительный.
%~d1 cd "%~p1" start cmd.exe /K "for %f in (*.txt) do type "%f" >> output.txt"
Windows 10. Любая помощь приветствуется. Благодарю.
Извините, код отображается неправильно отформатированным. Это на самом деле 4 строки.
Sean 7 лет назад
0
2 ответа на вопрос
1
HelpingHand
Могут ли помочь следующие стартовые файлы .reg и командный файл:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\Run Batch script] @="&Run text file concatenate" [HKEY_CLASSES_ROOT\Directory\shell\Run Batch script\command] @="\"E:\\menu.bat\" \"%1\""
Пакетный файл "E: \ menu.bat":
@ECHO OFF cd %* forfiles /s /m *.txt /c "cmd /c type @path >> %*\output.txt
Спасибо, не могли бы вы объяснить, почему вам нужно редактировать реестр? Я супер новичок в этом. Какой это язык?
Sean 7 лет назад
0
Записи реестра добавляют контекстное меню, вызываемое правой кнопкой мыши, для вызова командного файла на языке реестра Windows. Вы поместите данные в текстовый файл с расширением .reg и дважды щелкните по нему, чтобы добавить в свой реестр. Или вы можете открыть RegEdit и перейти к классам и добавить ключи самостоятельно, но это немного сложнее.
Sir Adelaide 7 лет назад
0
1
LotPings
Пакетные файлы требуют двойных знаков процента с использованием переменных.
Как я вижу, нет необходимости в CMD / K,
ваша команда не вернулась в подкаталоги
Вы должны избегать обработки вновь сгенерированного файла output.txt и (повторно) инициализировать его при последующих запусках.
Измените партию на это:
@Echo off Pushd "%~dp1" Type Nul >output.txt for /F "delims=" %%f in ( ' Dir /B/S/A-D *.txt ^|find /v /i "output.txt" ' ) do type "%%f" >> output.txt