Пакетный цикл по файлу в папке

все, я новичок с небольшими знаниями о скриптах. Я сделал этот .bat, который отлично работает:

for /l %%x in (1, 1, 4) do (
echo %%x
type A%%x.xml + tail.xml >> v%%x.stage
)

Он выполняет цикл 4 раза, объединяя файлы xml внутри папки. .Bat находится в той же папке, что и XML для слияния.

Но мне нужно вручную отредактировать число 4, если я хочу выполнить цикл из 10. Есть ли способ сделать цикл, используя количество файлов в папке? Допустим, в папке 15 файлов .xml, поэтому цикл будет выполняться 15 раз. Я пробовал разные коды циклов, которые нашел при переполнении стека, но мне не удалось заставить их работать :( не могли бы вы мне помочь, пожалуйста?

огромное спасибо

ОБНОВИТЬ: спасибо @Squashman, так что теперь мой код должен быть примерно таким, верно?

for %%x IN (*.xml) do set /a count+=1
echo %%x
type A%%x.xml + tail.xml >> v%%x.stage
for %%G IN (*.xml) do set /a count+=1
Squashman 18.12.2018 17:35

@Squashman, я обновил сообщение небольшим количеством кода, вы можете мне помочь, пожалуйста?

Luca C 18.12.2018 17:46

Используйте команду FOR, которую я дал вам над командой FOR. Затем используйте переменную окружения %count%, где в вашем коде находится 4.

Squashman 18.12.2018 17:47

он работает ОТЛИЧНО, спасибо @Squashman: D

Luca C 18.12.2018 17:58

Если в каталоге есть файлы 15.xml, должны быть только петли 14, потому что tail.xml будет одним из них, и я достаточно уверен, что вы не захотите объединять его с самим собой.

Compo 18.12.2018 19:02

@Compo Спасибо, да, вы правы, на самом деле, я вручную удаляю лишний файл (не большое дело ..), какое редактирование вы предлагаете, чтобы выполнить цикл только 14 раз?

Luca C 10.01.2019 12:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
124
1

Ответы 1

Если диапазон чисел гарантированно непрерывен, Предложение Сквошмена сработает.

Чтобы получить максимальное число независимо от возможных пробелов, вы можете использовать:

:: Q:\Test\2018\12\18\SO_53837368.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "Max=0"
For /f "delims=a." %%A in ('Dir /B "a*.xml"') do (
    Set /A "Num=%%A"
    if !Num! gtr !Max! set "Max=!Num!"
)
Echo Max number is: %Max%

он разделяет имя файла между буквой a и точкой в ​​расширении, сохраняя единственный номер. Набор / A используется для исключения возможных несовпадений с ненулевыми значениями.

спасибо @LotPings, сейчас мой диапазон файлов непрерывен, но в случае разных файлов я буду помнить ваш код: D

Luca C 18.12.2018 18:23

Я думаю, что теоретически вы могли бы использовать свой код и использовать !num! как часть команды копирования. copy A!num!.xml + tail.xml >> v!num!.stage. Проблема в том, что мы не знаем всей специфики всего процесса, поэтому трудно дать конкретный пуленепробиваемый ответ.

Squashman 18.12.2018 19:17

Другие вопросы по теме