Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
1

Проверка существующей папки и добавление цифры к ней

02.03.2014, 06:12. Просмотров 630. Ответов 5
Метки нет (Все метки)

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if not exist work\%capp% goto no
if not exist work\d\%capp% goto debuild
cls
echo.
echo 1 Папка %capp% уже существует, удалить её и продолжить
echo 2 Переименовать папку %capp% в 1_%capp% и продолжить
echo 3 Или выйти в главное меню
choice /c 123 /n
if errorlevel 3 goto 1
if errorlevel 2 goto dapkrr
if errorlevel 1 goto debuild
:dapkrr
cls
ren work\d\%capp% 1_%capp%
if errorlevel 1 echo  Не удалось переименовать папку& goto error
%capp% - это папка которая уже существует, нужно сделать так чтобы при существующей папке %capp% при выборе if errorlevel 2 она переименовывалась в 1_%capp%, а если и такая есть то в 2_%capp% и так по порядку + ещё чтобы это отображалось в той менюшке с эхоми
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 06:12
Ответы с готовыми решениями:

Поиск папки по всей системе и определенного файла в ней
Здравствуйте, стоит задача найти в системе папку, имя которой известно, например: "test". Она может...

Как в Windows 8.1 стать владельцем файла, папки и файлов в ней?
Как стать владельцем файла,папки и файлов в ней ?

Для каждой папки добавить её имя ко всем именам файлов в ней
Всем привет. Подскажите, пожалуйста, как мне решить теперь следующую проблему. В папке, в...

Поиск папки по части имени в указанном каталоге, последующее удаление её и файлов в ней
Ребята, всем привет! В батниках не силён ни разу Пытался сделать по аналогии по смежным темам, но...

Добавление папки в ZIP-архив
Как добавить папку (все файлы и подпапки) в zip архив с помощью bat файла.

5
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
02.03.2014, 23:06 2
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off& SetLocal
set capp=fold
if not exist "%capp%" goto nomenu
set n=1
:getEmptyFolder
if exist "%n%_%capp%" (set /A n+=1& goto getEmptyFolder)
echo Папка %capp% уже существует
echo.
echo 1 Удалить её и продолжить.
echo 2 Переименовать папку %capp% в %n%_%capp% и продолжить.
echo 3 Выйти в главное меню.
choice /c 123 /n
if errorlevel 1 rd /s /q "%capp%"
if errorlevel 2 ren "%capp%" "%n%_%capp%"
if errorlevel 3 goto nomenu
:nomenu
pause
Exit /B
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
03.03.2014, 00:43  [ТС] 3
if exist "%n%_%capp%" (set /A n+=1& goto getEmptyFolder)
Адаптировал для себя + вот ещё кусочки кода моего
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
echo Выберите файл
echo.
set /A count=0
FOR %%F IN (work/*.%f%) DO (
set /A count+=1
set a!count!=%%F
if /I !count! LEQ 9 (echo ^!count! %%F )
if /I !count! GTR 9 (echo ^!count! %%F )
)
set /P INPUT= %=%
if /I %INPUT% GTR !count! (goto no)
if /I %INPUT% LSS 1 (goto no)
set capp=!a%INPUT%!
if not exist work\%capp% goto no
if not exist work\d\%capp% goto debuild
set n=1
:g
SetLocal
if exist "work\d\%n%_%capp%" (set /A n+=1& goto g)
cls
echo.
echo 1 Папка %capp% уже существует, удалить её и продолжить
echo 2 Переименовать папку %capp% в %m%_%capp% и продолжить
echo 3 Или выйти в главное меню
choice /c 123 /n
if errorlevel 3 goto 1
if errorlevel 2 goto dapkrr
if errorlevel 1 goto debuild
:dapkrr
cls
echo I: Переименование %capp% в %m%_%capp%...
ren work\d\%capp% %m%_%capp%
set work\d\%capp%=work\d\%capp%
if errorlevel 1 echo  Не удалось переименовать папку& goto error
Но он пишет типа
echo 1 Папка "Имя папки" уже существует, удалить её и продолжить
echo 2 Переименовать папку "Имя папки" в _"Имя папки" и продолжить
echo 3 Или выйти в главное меню

И переименовывает её в _"Имя папки", а в следующий раз ругается что такая уже есть
Я находил другой код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if exist work\d\%m%_%capp% (
  set /a m+=1
  if !m! GTR 12 set /a m=1& set work\d\%capp%=work\d\!m!_%capp%
) else (set m=1)
cls
echo.
echo 1 Папка %capp% уже существует, удалить её и продолжить
echo 2 Переименовать папку %capp% в !m!_%capp% и продолжить
echo 3 Или выйти в главное меню
choice /c 123 /n
if errorlevel 3 goto 1
if errorlevel 2 goto dapkrr
if errorlevel 1 goto debuild
:dapkrr
cls
echo I: Переименование %capp% в !m!_%capp%...
ren work\d\%capp% !m!_%capp%
set work\d\%capp%=work\d\%capp%
if errorlevel 1 echo  Не удалось переименовать папку& goto error
Но он просто каждый раз добавляет +1 к названию, а при повторном включении батника всё обнуляется
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
03.03.2014, 00:53 4
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
SetLocal
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
echo I: Переименование %capp% в %m%_%capp%...
Ощущаете разницу между моим кодом?
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
03.03.2014, 01:27  [ТС] 5
Ощущаете разницу
Подогнал терь вроде всё прёт
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SetLocal
set n=1
:g
cls
if exist "work\d\%n%_%capp%" (set /A n+=1& goto g)
echo.
echo 1 Папка %capp% уже существует, удалить её и продолжить
echo 2 Переименовать папку %capp% в %n%_%capp% и продолжить
echo 3 Или выйти в главное меню
choice /c 123 /n
if errorlevel 3 goto 1
if errorlevel 2 goto dapkrr
if errorlevel 1 goto debuild
:dapkrr
cls
echo I: Переименование %capp% в %n%_%capp%...
ren "work\d\%capp%" "%n%_%capp%"
if errorlevel 1 echo  Не удалось переименовать папку& goto error
goto dde
0
Dragokas
Эксперт WindowsАвтор FAQ
17049 / 7106 / 859
Регистрация: 25.12.2011
Сообщений: 10,918
Записей в блоге: 16
03.03.2014, 03:15 6
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
:g
cls
if exist "work\d\%n%_%capp%" (set /A n+=1& goto g)
Обязательно внутрь цикла еще что-то вставлять? cls - это тормоз.
0
03.03.2014, 03:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2014, 03:15

Циклическая проверка существования папки
Добрый день! Подскажите, пожалуйста: есть такой батник: xcopy "C:\1\template"...

Проверка папки на новые файлы
Доброго времени суток! В общем есть папка, куда приходят каждый день файлы, необходим батник,...

Проверка на наличие папки и запуск
Ребята помогите написать батник, надо чтобы он после загрузки системы, проверял наличие на диске...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru