Вот немного хакерского ответа.
Этот сценарий будет переместить все файлы из file (1).txt
до file (10).txt
в file.txt, оставив только file.txt, которая теперь содержит текст, который был в файле (10) .txt
Doing в возрастающем порядке обеспечит наибольшее число, которое существует, является последним, которое нужно переместить.
@echo off
set /P name=Enter name of file without extension:
echo enter extension:
set /P ext=.
echo. & echo.
echo these actions will be performed: & echo.
FOR /L %%A IN (1,1,10) DO @echo move /y "%name% (%%A).%ext%" "%name%.%ext%"
echo. & pause & echo.
FOR /L %%A IN (1,1,10) DO move /y "%name% (%%A).%ext%" "%name%.%ext%"
pause
Вы можете использовать IF EXIST %name% (%%A).%ext%
Чтобы остановить скрипт пытается переместить файлы, которые не существуют, но это никак не влияет ничего, чтобы сделать это, так что я не стал.
Приведенный выше сценарий сделает это для определенного именованного файла. Для того, чтобы сделать это для всех файлов в каталоге можно будет, вот несколько советов, чтобы вы собираетесь
использовать dir /b >filenames.txt
, чтобы получить все файлы в каталоге, указанном в текстовом файле
выполнить действие для каждого строка в текстовом файле сделать
for /f "usebackq delims= tokens=* %%a in (`filenames.txt`)" DO (
::some stuff here
)
путь я бы об этом было бы получить filenames.txt, вручную удалить все (п) файлы, так что вы просто список «не-дубликатов» имен файлов, и использовать это как ваш вход. Вы
Есть, вероятно, более элегантные решения, но со всеми особенностями партии я не удивлюсь, если найдутся страницы и страницы.
Если вы хотите сохранить все исходные файлы не только в конечном итоге с окончательным file.txt без каких-либо копий, то я вы хотите использовать COPY
Если вы хотите сохранить все исходные файлы, то вы хотел бы использовать COPY not MOVE.
В этом случае, чтобы удалить все лишние операции (т.е. копировать только с наибольшим номером файла, а не копировать все файлы в порядке) то что-то вроде IF NOT EXIST %name% (!B!).%ext%
где !B!=%%A+1
в вашей (теперь многострочный) цикл и использовать SETLOCAL EnableDelayedExpansion на сделайте арифметику правильно. Но это не обязательно, копирование 1, затем 2, затем 3, затем 4 делает то же самое, если немного медленнее, чем пропустить 1 2 и 3 и просто делать 4.
Надеюсь, это поможет вам указать в в правильном направлении, не стесняйтесь задавать вопросы, если это не ясно.
Что вы пробовали в качестве кода? – Hackoo
Я понятия не имею, как это сделать. Теперь я использую для циклов, если условия, заданные переменные, но у меня мало опыта. Первая идея Mi заключалась в том, чтобы запустить цикл for и проверить, существует ли файл (% i) .tex ". Но тогда я не уверен, как продолжить ... –
Я не могу найти вопрос в вашем сообщении. В названии говорится, что вы хотите что-то удалить, но тело «вопрос» не описывает, что нужно удалить, оно только говорит о копировании файла на другой. Поэтому, пожалуйста, уточните! Имеет ли файл с наибольшим числом также дату последнего создания или изменения? Затем поделитесь тем, что вы пробовали до сих пор, и с чем у вас проблемы! StackOverflow - это не место, где можно бесплатно скачать скрипты! Прочитайте это: [ask] – aschipfl