Получить количество файлов, которые содержат строку в своих именах - PullRequest
0 голосов
/ 23 мая 2018

Я создал пользовательское подменю в контекстном меню, и я обновляю его, когда сталкиваюсь с проблемами.

Способ работы заключается в том, что у меня есть файлы шаблонов.Всякий раз, когда я нажимаю на элемент (тип файла) в подменю, этот файл шаблона копируется в текущую папку и переименовывается.Например:

@echo off
copy C:\Windows\CustomNew\templates\html.html "%cd%"
rename html.html "New HTML Document.html"

Проблема с этим кодом заключается в том, что если я создаю два HTML-файла, первый переименовывается, а второй - нет.И это потому, что в текущей папке уже есть файл с именем "New HTML Document.html".Так что это просто остается "html.html".Чтобы обойти это, я попытался:

@echo off

setlocal enabledelayedexpansion

copy C:\Windows\CustomNew\templates\html.html "%cd%"

set name="New HTML Document.html"

if exist %name% (
    set name="New HTML Document (2).html"
)

rename html.html !name!

Это работает, но что если я захочу создать более двух файлов?У меня все еще есть начальная проблема.Чтобы это исправить, мне нужно получить количество файлов, которые содержат "New HTML Document" в именах, добавить 1 к нему и соответственно переименовать новый файл.Как мне это сделать?

1 Ответ

0 голосов
/ 23 мая 2018

реализовать счетчик и цикл:

@ECHO OFF
break>html.html
setlocal enabledelayedexpansion

set "name=New HTML Document.html"
set count=0

:loop
if not exist "%name%" goto :continue
set /a count+=1
set "name=New HTML Document (%count%).html"
goto :loop

:continue
rename html.html "%name%"
dir new*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...