объединить все текстовые файлы (включая вложенные папки) из папки, в которую я поместил файл .bat

#cmd

#cmd

Вопрос:

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

 for /R %F in (*.txt) do if not "%~nxF"=="output.txt" type "%F" >> output.txt
 

Комментарии:

1. %~dp0 это папка, в которой находится ваш пакетный файл.

2. таким образом, будет правильный файл cmd: for /R %F in (%~dp0.txt ) делать, если нет «% ~ nxF»==»output.txt » введите «%F» >> output.txt или? потому что я пробовал кое-что, и я не хочу, чтобы внезапно весь текст моей системы был объединен lel

3. Я бы предпочел сделать for /R "%~dp0" %F in (*.txt) do ... >>"%~dp0output.txt" . Помните, что удваивайте знаки процента для метапеременной, %F когда вы помещаете ее в пакетный файл: %%F , %%~nxF

4. когда я запускаю это, я получаю сообщение об ошибке «~dp0output.txt » это было неожиданно в это время»

5. Проблема в том, что вы явно не знаете разницы между командой и сценарием. Вы заявили, что у вас возникли «небольшие проблемы с настройкой простого скрипта», который вы могли бы «запустить из строки cmd». Затем вы опубликовали командную строку, которую вы могли бы ввести в cmd.exe . Это был не скрипт, тогда как упомянутый вами «подвижный .bat-файл» был бы. Чтобы изменить вашу командную строку для правильного запуска из .bat скрипта, это будет выглядеть примерно так For /R %%F In (*.txt) Do If /I Not "%%~nxF" == "output.txt" Type "%%F" 1>> "output.txt" . Этот код всегда будет основан на текущем местоположении .