Я хочу сделать пакетный файл, этот пакетный файл должен смотреть, в папку с именем "Черновик", и для каждой подпапки будет искать .txt файл «list.txt» и когда найдет это. TXT-файл, после чего будет выполнена копия из папки "Черновик" в папку "Готово". Я написал небольшой сценарий, но у меня есть некоторые проблемы.

@echo off
:loop

  for /d %%i in ('dir "C:\Users\ntosis\Desktop\Draft" /ad /o:d /s /b') do ( 
  SET a=%%i
  echo %a%
  )

echo Folder is empty or does not exist
timeout /t 15
goto loop

Проблема в этой небольшой части скрипта состоит в том, что переменная "a" не может сохранить имя папки, если я изменяю echo %a% на echo Hello World тогда скрипт печатает сообщение только один раз и не так долго как цикл работает Есть идеи?

1 ответ1

0

Вы, вероятно, можете сделать это в один лайнер:

for /R "C:\Users\ntosis\Desktop\Draft" %G in (list.txt) do ( type "%G" >> "C:\Users\ntosis\Desktop\Ready\list.txt"

Это объединит все ваши файлы list.txt в один list.txt в папке Ready.

Убедитесь, что папка «Готов» не является подпапкой папки «Черновик», в противном случае вы получите дублированные строки.

Если вы хотите запустить из командного файла, не забудьте удвоить свой%:

for /R "C:\Users\ntosis\Desktop\Draft" %%G in (list.txt) do ( type "%%G" >> "C:\Users\ntosis\Desktop\Ready\list.txt"

Если вы хотите скопировать всю исходную структуру каталогов с вашими файлами list.txt, то это немного по-другому.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .