#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"
. Этот код всегда будет основан на текущем местоположении .