Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Считывание имени папки для операций

Ответить
Настройки темы
CMD/BAT - [решено] Считывание имени папки для операций

Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Всем доброго времени суток !
Помогите пожалуйста с задачей!

На диске находятся папки:
Мои документы
Мои файлы
Мои ... тд
fff_1
fff_2
fff_3
fff_4
fff_5
...
fff_n (короче их может быть сколько угодна и одна и две и сто).

Задача такова. Вывести на экран только те папки в имени которых присутствует "fff" и пронумеровать их вот так (то есть вот это должно выводиться):
1)fff_1
2)fff_2
3)fff_3
4)fff_4
...
n)fff_n
Далее ввести с клавиатуры номер папки и проверить на условие: если ввели "1", то папку "fff_1" переименовать на "найденная папка". И переименовать конечно же.
На этом конец батника.

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

Отправлено: 15:39, 06-06-2011

 

Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Да забыл сказать что в папках могут содержаться файлы аж до 10 гигабайт.

Отправлено: 15:40, 06-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Starter1,
Код: Выделить весь код
@Echo Off
Set Source=C:\Source

Dir /W /B /AD "%Source%\fff_*"&&Set /P "Num=Enter number: "
If Exist "%Source%\fff_%Num%" Ren "%Source%\fff_%Num%" "Найденная папка"
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:04, 06-06-2011 | #3


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


El Sanchez, Спасибо работает но для папок пронумерованных. Понял что не правильно задал вопрос. Извините

В общем у нас есть папки:
fff_Наварот
fff_Мои работы
fff_Ещё что-то

Вот такие вот папки а задача такая же.

Отправлено: 18:19, 06-06-2011 | #4


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Starter1:
работает но для папок пронумерованных »
Starter1, смутила надпись Enter number: ? Так вводите нужное вам окончание вместо цифр и замените Set /P "Num=Enter number: " на что-нибудь другое, например, Set /P "Num=Enter end of foldername: "
P.S. Не забывайте, что скрипт необходимо сохранять в кодировке DOS (OEM866), если работаете с кириллицей
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:12, 06-06-2011 | #5


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


El Sanchez, вся проблема в том что нужно ввести цифру папки которая стоит в списке выведенном на экран, а не её имя, так бы с радостью.
Цитата Starter1:
1) fff_Наварот
2) fff_Мои работы
3) fff_Ещё что-то »

Последний раз редактировалось Starter1, 06-06-2011 в 22:44. Причина: Дополнил


Отправлено: 22:42, 06-06-2011 | #6


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Starter1, пардон, невнимательно условие прочитал:
Код: Выделить весь код
@Echo Off
SetLocal
Set Source=C:\Source
For /F "Tokens=1* Delims=:" %%A In ('Dir /W /B /AD "%Source%\fff_*"^|FindStr /N .') Do Echo %%A) %%B&Set fff_%%A=%%B
Set /P "Num=Enter number: "
If Defined fff_%Num% Call Ren "%Source%\%%fff_%Num%%%" "Найденная папка"&&Echo OK
EndLocal
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:59, 07-06-2011 | #7


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


El Sanchez, Да не, это я неправильно задал вопрос. О! Спасибо огромное работает отлчно!!! Всё просто курто! Решил проблему!

Отправлено: 16:40, 07-06-2011 | #8


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


А можно ли в этом же батнике вернуть старое имя? После как выбрал номер и папка переименовалась в "Найденная папка", далее после pause продолжил и вернулось старое имя, после батник заканчивается и естественно окошко закрывается.

Последний раз редактировалось Starter1, 18-06-2011 в 11:24.


Отправлено: 17:35, 07-06-2011 | #9


Пользователь


Сообщения: 64
Благодарности: 5

Профиль | Отправить PM | Цитировать


Решил проблемму при помощи вот этого
For /F "Tokens=1* Delims=:" %%A In ('Dir /W /B /AD "%Source%\%pr%*"^|FindStr /N .') Do (Echo %%B >> %spisok%)
Ну думаю объяснять ничего не нужно.

Отправлено: 19:55, 07-06-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Считывание имени папки для операций

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - проверка по имени папки AntiZero Скриптовые языки администрирования Windows 0 24-03-2011 12:16
CMD/BAT - [решено] Передача имени папки с пробелами okshef Скриптовые языки администрирования Windows 1 31-01-2011 17:10
[решено] Получение имени папки stalinit078 AutoIt 2 12-09-2010 13:25
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" permas Microsoft Windows 2000/XP 2 20-02-2010 19:30
Разное - [решено] Пробел в конце имени папки DuoStorm Microsoft Windows 2000/XP 1 17-04-2008 19:18




 
Переход