Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Считывание имени папки для операций (http://forum.oszone.net/showthread.php?t=208371)

Starter1 06-06-2011 15:39 1689345

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

На диске находятся папки:
Мои документы
Мои файлы
Мои ... тд
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" переименовать на "найденная папка". И переименовать конечно же.
На этом конец батника.

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

Starter1 06-06-2011 15:40 1689346

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

El Sanchez 06-06-2011 18:04 1689465

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%" "Найденная папка"


Starter1 06-06-2011 18:19 1689475

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

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

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

El Sanchez 06-06-2011 21:12 1689561

Цитата:

Цитата Starter1
работает но для папок пронумерованных »

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

Starter1 06-06-2011 22:42 1689623

El Sanchez, вся проблема в том что нужно ввести цифру папки которая стоит в списке выведенном на экран, а не её имя, так бы с радостью.
Цитата:

Цитата Starter1
1) fff_Наварот
2) fff_Мои работы
3) fff_Ещё что-то »


El Sanchez 07-06-2011 11:59 1689850

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


Starter1 07-06-2011 16:40 1690055

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

Starter1 07-06-2011 17:35 1690102

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

Starter1 07-06-2011 19:55 1690195

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


Время: 16:22.

Время: 16:22.
© OSzone.net 2001-