Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4

как выполнить условие?

07.05.2011, 21:18. Показов 3016. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
5. Переименовать файлы каталога DIR2 так, чтобы расширение у файла с именем из одного символа стало <имя_файла>.1 , с именем из двух символов <имя_файла>.2 и так далее

написал вот такой .bat

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
md c:\oz\temp
md c:\oz\temp\dir1
md c:\oz\temp\dir2
copy ..\windows\*.* ..\oz\temp\dir1
del c:\oz\temp\dir1\a*.e*
copy c:\oz\temp\dir1\??s*.e* c:\oz\temp\dir2
dir c:\oz\temp\dir2
for %%i in (c:\oz\temp\dir2\???????.*) do ren %%i %%~ni.7 :: <---
for %%i in (c:\oz\temp\dir2\????????.*) do ren %%i %%~ni.8 :: <---
for %%i in (c:\oz\temp\dir2\?????????.*) do ren %%i %%~ni.9 :: <---
dir c:\oz\temp\dir2
pause
пробовал сначала просто писать вместо выделеных строк вот так:

Windows Batch file
1
2
3
ren c:\oz\temp\dir2\???????.* *.7
ren c:\oz\temp\dir2\????????.* *.8
ren c:\oz\temp\dir2\?????????.* *.9
но при обоих вариантах написания выходит одно и то же: все файлы получают разрешение с максимальной цифрой (9), а это значит, что условие не соблюдается.
подскажите пожалуйста, как правильно надо написать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2011, 21:18
Ответы с готовыми решениями:

Как выполнить условие IF else?
procedure TForm1.Button1Click(Sender: TObject); var metka:string; begin metka:='-100.0'; if metka&gt; 0 then //если значение...

как выполнить такое условие?
Условная схема: if (if then else) then else. В Pascal. вот я моя программа: if (if a&lt;0 then log10(-a) else sqrt(a))&gt;=0 then ...

Предложите, как выполнить условие программы
смысл задачи в следующем: если столбцы прямоугольной целочисленной матрицы расположены в порядке возрастания числа нулевых элементов в...

5
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
08.05.2011, 11:33
С именем из одного символа - это очевидно, ?.*.
Соответственно? 2 символа - это ??.*.
Наверное, здесь надо делать rename в цикле for, перебирая все файлы.
*Читайте for /? и rename /?
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
08.05.2011, 14:01
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd /d "c:\oz\temp\dir2"
for /f "delims=" %%i in ('dir /a-d /b') do call :r "%%i" "%%~ni"
pause
exit
 
:r
set n=%~2
set x=1
if "%n%"=="" (set x=0 & goto :p2)
:p
call set a="%%n:~%x%,1%%"
if not %a%=="" (set /a x+=1 & goto :p)
:p2
echo %x%
ren %1 "%n%.%x%"
exit /b
Добавлено через 2 минуты
файлы наверно все таки проще вручную создать
хотя если хотите в коде, то вставьте перед началом
1
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
08.05.2011, 14:39  [ТС]
Цитата Сообщение от Ris Посмотреть сообщение
С именем из одного символа - это очевидно, ?.*.
Соответственно? 2 символа - это ??.*.
Наверное, здесь надо делать rename в цикле for, перебирая все файлы.
*Читайте for /? и rename /?
так у меня вроде все так и написано, просто там по условиям будет копироваться 1 файл с именем из 7 символов, поэтому на этапе опытов решил писать с 7 по 9 символ. rename=ren

atributz, спасибо все работает. А насчет создания файлов, так по условиям лабы мне надо было все это выполнить командами.
0
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
12.05.2011, 21:32  [ТС]
не могу понять, что написано в 11(call set a="%%n:~%x%,1%%") строке? можно ли как-то простыми словами это объяснить? сорри, но я только учусь и буду рад любым объяснениям.
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
12.05.2011, 21:54
Двойное раскрытие переменной

Данный пункт не относится к проблемным местам в написании скриптов, а скорее является так называемым хинтом.

Если в нашем распоряжении имеется переменная, которая уже имеет какое-то ранее присвоенное значение и имя этой переменной присутствует в значении другой переменной, чтобы раскрыть значение второй переменной так, чтобы значение первой переменной подставилось вместо ее “%”-имени в значение второй переменной, можно воспользоваться синтаксисом переустановки переменной через вызов call.

Подробнее смотрите http://www.rsdn.ru/article/win... .xml#EFPAE

Добавлено через 6 минут
конкретно по этому примеру
мы перебираем символы в переменной n, и записываем их в переменную a.
то есть мы делаем так
a=%n:~1,1% - определяем второй символ, a=%n:~2,1% - третий символ и так до тех пор, пока символы не кончатся, то есть мы находим длину строки n.
так как нам надо менять число внутри %% то мы используем двойное раскрытие переменных.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2011, 21:54
Помогаю со студенческими работами здесь

Как выполнить условие, когда цикл закончится
Как выполнить условие, когда цикл закончится, а то в данный момент у меня запускается много run()? foreach (XmlElement element in...

Как выполнить запрос, если условие пустое?
Добрый день Подскажите . Делаю запрос если например Ответственный оставляю поле пустым как сделать условие ,чтобы запрос все равно искал...

Как можно выполнить это условие в Excel
Подскажите пожалуйста, как можно выполнить это условие в Excel, у меня не получается найти нигде формулы, которая бы отбирала только четные...

Как в Yii используя ActiveRecord выполнить условие ИЛИ?
Добрый день, $user_model = ActiveRecord::model('User')-&gt;findByAttributes(array('LOGIN'=&gt;$this-&gt;LOGIN, 'EMAIL'=&gt;$this-&gt;EMAIL)); ...

Как выполнить данное условие с переключением информации в одном блоке
Есть блок красный что показан на скриншоте это блок который меняется при нажатии на кнопки, синие это собственно 3 картинки и 3 кнопки. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru