Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6732-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Нужно слепить .bat

Blackone
Oct 26 2016, 12:31
  
Пост #1

Благодарности: 143803

Репутация:   1786  
Melomaniac
*****

Группа: Пользователи
Сообщений: 5 028
С нами с: 18-July 06


Товарищи, прошу помощи.
Так как уже надоело каждый раз заниматься лишними движениями, которые занимают много времени, хотел создать батник со следующими функциями:
1. Создает файл 1.atc с указанными строками (тут я допустим, разобрался)
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
2. Копирует этот файл в каждую из подпапок в одной директории.
Например, у меня по пути C:\AGServer\Conf\ лежит порядка 1500 папок с уникальным номером серийным, но копировать не обязательно во все, было бы архикруто прикрутить список конкретных, по типу как в тотале можно задать диапазон переименования (допустим в папки с последовательным диапазоном 0160400 по 0161499, или четко указанные 2035321, 1338611, 0368246)

Сообщение отредактировал Blackone - Oct 26 2016, 12:32
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов(1 - 6)
Dr.Sydorenko
Oct 26 2016, 13:12
  
Пост #2



Репутация:   163  
Старожил
****

Группа: Пользователи
Сообщений: 2 163
С нами с: 27-June 12


По п.2 мне видится команда FOR читающая список из файла
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
P.L.U.R.
Oct 26 2016, 14:51
  
Пост #3



Репутация:   572  
non-mainstream activist
*****

Группа: BANNED
Сообщений: 7 042
С нами с: 4-March 08


Человеку бы весь код подсказали.
ИМХО на мой непрофессиональный взгляд там делов на 20 минут для бакалавра факультета ИТ

Но да, по п.2 функция c
for * in *
if * than *
else()
Прошу прощения за намёк на говнокод не для командной строки fp.gif

Сообщение отредактировал P.L.U.R. - Oct 26 2016, 14:53
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Dr.Sydorenko
Oct 26 2016, 15:07
  
Пост #4



Репутация:   163  
Старожил
****

Группа: Пользователи
Сообщений: 2 163
С нами с: 27-June 12


Я, конечно, дико извиняюсь, но:
1. FOR /? никто не отменял. Там есть хорошие примеры. Набор параметров сильно зависит от версии ОС.
2.
if * than *

как ни странно, в BAT-файлах не работает.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Oct 26 2016, 18:04
  
Пост #5



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


@echo off
Setlocal EnableDelayedExpansion
cls
set currentDirectory=%CD%
FOR /D %%g IN ("*") DO (
Pushd %CD%\%%g
FOR /D %%f IN ("*") DO (
copy "%currentDirectory%\1.atc" "%%~ff"
)
Popd
)
pause

Батник и 1.atc должен быть в одной директории с той папкой, которая имеет ПОДпапки, в которые нужно этот файл запихать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Blackone
Oct 27 2016, 9:42
  
Пост #6

Благодарности: 143803

Репутация:   1786  
Melomaniac
*****

Группа: Пользователи
Сообщений: 5 028
С нами с: 18-July 06


(Carnifex @ Oct 26 2016, 19:04) Перейти к цитате
@echo off
поясните, пожалуйста, что есть:
%%g
%%f
%%~ff
blush.gif

когда-то в универе помню условие задавали в каком-то языке либо "0160400..0161499", либо "2035321,1338611,0368246"
сработает ли тут такое?

Сообщение отредактировал Blackone - Oct 27 2016, 9:45
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Oct 27 2016, 14:19
  
Пост #7



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


С процентами - это переменные. %~ff - это уже действие над переменной f (полное имя просто взять). Двойные знаки процента - это для batch файла (*.bat) - если бы мы писали в cmd - знак процента был бы одинарный.
На самом деле, можно братиться к документации для команды FOR - там все описано. cmd FOR loop

когда-то в универе помню условие задавали в каком-то языке либо "0160400..0161499", либо "2035321,1338611,0368246"
сработает ли тут такое?


Сработает. Параметры в таком виде можо записывать после ключевого слова token=. Если есть необходимость, конечно (в вышеуказанной документации более развернутое пояснение).

Сообщение отредактировал Carnifex - Oct 27 2016, 14:27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 20th August 2024 - 14:05
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.