Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 2

Автор: Elroir
Дата сообщения: 30.01.2007 01:44
igor_andreev

Цитата:
А все команды rundll32 тут живут

Ух ты! Спасибо - давно искал.
P.S. Я как-раз хотел спросить "откуда дровишки"
Автор: ViSiToR
Дата сообщения: 30.01.2007 01:44

Цитата:
как запустить свойства папки батником?

Вот так:


Код: RunDll32.exe shell32.dll,Options_RunDLL 0
Автор: Tipulatoid
Дата сообщения: 30.01.2007 01:59
igor_andreev
Теперь скрипт путево работает Спасибо.

to all
И встала следующая проблема (не ожидал, что здесь я затуплю). Итак, получился new_stock.txt:

Код: 6,42 9,24 10,55 1,23
8,92 15,57 20,56 4,39
-0,59 0,00 -7,54 0,00
8,60 14,78 19,31 4,02
8,69 14,23 18,00 2,48
8,90 14,77 18,85 2,75
Автор: igor_andreev
Дата сообщения: 30.01.2007 02:27
Tipulatoid
Так как-нибудь

Код:
@ECHO OFF & SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET "team_1_name=Владивосток"
SET "team_2_name=Новосибирск"
SET "team_3_name=Уфа"
SET "team_4_name=Кострома"
SET "team_5_name=Оренбург"
SET "team_6_name=Томск"

SET /A "COUNT=0"

FOR /F "TOKENS=* DELIMS=" %%A IN (new_stock.txt) DO (
SET /A "COUNT+=1"
CALL :write_label "%%A"
)
GOTO :EOF

:write_label
ECHO !team_%COUNT%_name! %~1>>another_stock.txt
Автор: Maza Faka
Дата сообщения: 30.01.2007 06:11
Немного не в тему, но всё-таки интересно, можно ли скрыто отформатировать несистемный раздел жёсткого диска при помощи батника...Не подумайте чего плохого, просто интересно

Добавлено:
Elroir

Цитата:
":~0,-1" - взять все символы из переменной, кроме последнего.
Проверь, что у тебя записывается в реестр без этого.


Номано всё записывается

Автор: Orm
Дата сообщения: 30.01.2007 07:17
Elroir


Цитата:
Orm
Получилось так:

Код:

@echo off
setlocal

:: Path where the date folders are
set work_in_path=c:\temp\
:: Path for copy
set copy_to_path=c:\temp\

:copy
:: Setting work folder
set work_folder=%date:.=%

:: Change directory to DATE\out folder. If not exists wait
pushd %work_in_path%%work_folder%\out 2>nul
if %errorlevel%==1 goto nofolder

:: Finding the name of the file with last creation date
for /f "usebackq tokens=1" %%a in (`"dir /a-d /od /tc /b"`) do set fname=%%a

:: Copying the file
copy /y "%fname%" "%copy_to_path%">nul
popd

:wait
::Waiting 5 minutes
ping -n 300 -w 1000 127.0.0.1>nul
goto copy

:nofolder
echo Working folder is not found. Waiting...
goto wait


Выделенные пути заменить на свои.


Спасибо, все получилось. Только хотелось чтобы выполнялось еще одно условие. Не копировать обнаруженный файл, если со времени его создания прошло больше 10 минут. Просто у убрал вот этот кусок

Цитата:

:wait
::Waiting 5 minutes
ping -n 300 -w 1000 127.0.0.1>nul
goto copy

и добавил задание в планировщик с интервалом в 10 минут.
Сейчас это выглядит так

Цитата:

@echo off
setlocal

:: Path where the date folders are
set work_in_path=z:\programms\financial\exchange\out\
:: Path for copy
set copy_to_path=\\FINANCE-0323\C$\out

:copy
:: Setting work folder
set work_folder=%date:.=%

:: Change directory to DATE\out folder. If not exists wait
pushd %work_in_path%%work_folder%\out 2>nul
if %errorlevel%==1 goto exit

:: Finding the name of the file with last creation date
for /f "usebackq tokens=1" %%a in (`"dir /a-d /od /tc /b"`) do set fname=%%a

:: Copying the file
copy /y "%fname%" "%copy_to_path%">nul
popd

:exit

...и каждые 10 минут копируется самый свежий файл.
Автор: Maza Faka
Дата сообщения: 30.01.2007 07:51
Elroir

Вот так тоже работает:

@Echo off
Set RegKey=%CD%
Reg Add HKCU\SOftware\MyProgram /v ProgramPath /t REG_SZ /d %RegKey% /f

И вот так тоже: Reg Add HKCU\SOftware\MyProgram /v ProgramPath /t REG_SZ /d %CD% /f


Автор: WN688V
Дата сообщения: 30.01.2007 10:29
Подскажите как bat-ом запустить/отключать сетевое подключение
rasdial - не подходит, имеются в виду именно ЛАН-овские подключения
Автор: Elroir
Дата сообщения: 30.01.2007 10:43
Maza Faka

Цитата:
Вот так тоже работает

ОК, просто когда последний символ значения это кавычка, а предпоследний - \, то именно эта (одна) кавычка у меня записывается в реестр в конце значения.
Автор: Elroir
Дата сообщения: 30.01.2007 13:14
Orm

Цитата:
Не копировать обнаруженный файл, если со времени его создания прошло больше 10 минут.

Это достаточно сложно - например, если файл создан вчера в 10:20, а проверка идет сегодня в 10:25, то разница во времени будет 5 минут и файл скопируется. Поэтому всегда надо проверять и число тоже, а это уже большие заморочки
Автор: Master Bob
Дата сообщения: 30.01.2007 13:30
Кто подскажет, как через бат файл установить для какой-либо учетной записи срок действия пароля и как сделать, чтобы он был неограничен.
Если через команду

Цитата:
net user пользователь пароль /add /expires:never /passwordchg:no /passwordreq:no

- то устанавливантся только что срок действия САМОЙ УЧЕТКИ неограничен. а пароль со временем заканчивается.


Автор: Maza Faka
Дата сообщения: 30.01.2007 17:20
Немного не в тему, но всё-таки интересно, можно ли скрыто отформатировать несистемный раздел жёсткого диска при помощи батника...Не подумайте чего плохого, просто интересно
Автор: FXPELIVE
Дата сообщения: 30.01.2007 18:19
Всем
Как написать такой пакетник, чтобы он переводил кирилицу в латиницу?
Например
Из: Тестовое слово
В: Testovoje_slovo
Автор: Elroir
Дата сообщения: 30.01.2007 18:47
FXPELIVE

Цитата:
Как написать такой пакетник, чтобы он переводил кирилицу в латиницу?


Код:
@echo off
setlocal
chcp 1251>nul
set "word=Тестовое слово"
SET "word=%word:ж=zh%"
SET "word=%word:Ж=ZH%"
SET "word=%word:ц=ts%"
SET "word=%word:Ц=TS%"
SET "word=%word:ч=ch%"
SET "word=%word:Ч=CH%"
SET "word=%word:ш=sh%"
SET "word=%word:Ш=SH%"
SET "word=%word:щ=sch%"
SET "word=%word:Щ=SCH%"
SET "word=%word:ю=yu%"
SET "word=%word:Ю=YU%"
SET "word=%word:я=ya%"
SET "word=%word:Я=YA%"
SET "word=%word:а=a%"
SET "word=%word:б=b%"
SET "word=%word:в=v%"
SET "word=%word:г=g%"
SET "word=%word:д=d%"
SET "word=%word:е=e%"
SET "word=%word:ё=e%"
SET "word=%word:з=z%"
SET "word=%word:и=i%"
SET "word=%word:й=j%"
SET "word=%word:к=k%"
SET "word=%word:л=l%"
SET "word=%word:м=m%"
SET "word=%word:н=n%"
SET "word=%word:о=o%"
SET "word=%word:п=p%"
SET "word=%word:р=r%"
SET "word=%word:с=s%"
SET "word=%word:т=t%"
SET "word=%word:у=u%"
SET "word=%word:ф=f%"
SET "word=%word:х=h%"
SET "word=%word:ъ=`%"
SET "word=%word:ы=i%"
SET "word=%word:ь=`%"
SET "word=%word:э=e%"
SET "word=%word:А=A%"
SET "word=%word:Б=B%"
SET "word=%word:В=V%"
SET "word=%word:Г=G%"
SET "word=%word:Д=D%"
SET "word=%word:Е=E%"
SET "word=%word:Ё=E%"
SET "word=%word:З=Z%"
SET "word=%word:И=I%"
SET "word=%word:Й=J%"
SET "word=%word:К=K%"
SET "word=%word:Л=L%"
SET "word=%word:М=M%"
SET "word=%word:Н=N%"
SET "word=%word:О=O%"
SET "word=%word:П=P%"
SET "word=%word:Р=R%"
SET "word=%word:С=S%"
SET "word=%word:Т=T%"
SET "word=%word:У=U%"
SET "word=%word:Ф=F%"
SET "word=%word:Х=H%"
SET "word=%word:Ъ=`%"
SET "word=%word:Ы=I%"
SET "word=%word:Ь=`%"
SET "word=%word:Э=E%"
SET "word=%word: =_%"
echo %word%
Автор: FXPELIVE
Дата сообщения: 30.01.2007 18:51
Elroir
Спасибо, но только почему слово "Ф И О" переводится в "f_i_o__________________________________________________________________"
Как убрать прочерк после слов?
Автор: Elroir
Дата сообщения: 30.01.2007 19:03
FXPELIVE

Цитата:
Как убрать прочерк после слов?

Убедиться, что после Ф И О нет пробелов, так как батник заменяет все пробелы знаком подчеркивания.

Добавлено:
А... понял - удали все пробелы в конце строк батника

Добавлено:

Цитата:
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

Автор: FXPELIVE
Дата сообщения: 30.01.2007 19:08
Elroir
Всё ОК! Ещё раз спасибо.
Автор: igor_andreev
Дата сообщения: 30.01.2007 19:14
Elroir
Кстати, к вопросу о гадских пробелах на ru-board при копировании, обрати внимание, как я написал свой предыдущий пост для Tipulatoid
SET "team_1_name=Владивосток"
SET /A "COUNT+=1"
и т.п. Брал значения в кавычки, так можно. В строчке:
CALL :write_label "%%A" значение %%A тоже передал в кавычках и в метке :write_label убрал кавычки тильдой %~1. Как результат - все работает при копировании с форума. В твоем примере тоже, если взять все присвоения значений в кавычки вместо:
SET word=%word:ж=zh%
написать:
SET "word=%word:ж=zh%"
все будет работать при копировании. Не панацея конечно, но хоть как-то
Автор: Elroir
Дата сообщения: 30.01.2007 19:21
igor_andreev
OK, возьму на вооружение, спасибо!
Кстати, код замены букв, если не ошибаюсь, я взял у тебя
Автор: rbcl
Дата сообщения: 30.01.2007 19:41
Вот задачка встала тут передо мной. Найти запущенные службы по маске и тормознуть их. Пол скрипта вроде сделал. а на остальное не хватает. Вообщем имею на выходе в стандартном потоке список нужных служб. Как применить цикл "for" чтобы сделать "net stop" каждой из них?
Автор: Elroir
Дата сообщения: 30.01.2007 19:50
rbcl
Выведи список в файл, например list.txt.

Код:
for /f "tokens=*" %%a in (list.txt) do net stop "%%a"
Автор: rbcl
Дата сообщения: 30.01.2007 22:47
Спасибо. А я могу использовать вот так:
for /f "tokens=*" %%a in (net start | findstr бла бла) do net stop "%%a"
а то в синтаксисе совсем запутался.
Автор: Smitis
Дата сообщения: 30.01.2007 22:51
Master Bob

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

Цитата:net user пользователь пароль /add /expires:never /passwordchg:no /passwordreq:no

- то устанавливантся только что срок действия САМОЙ УЧЕТКИ неограничен. а пароль со временем заканчивается.

Когда-то искал, как это сделать и не нашёл
Только если сделать для всех. Вроде бы так:

Код:
net accounts /maxpwage:unlimited /minpwage:0
Автор: Elroir
Дата сообщения: 30.01.2007 22:54
rbcl

Цитата:
Спасибо. А я могу использовать вот так:
for /f "tokens=*" %%a in (net start | findstr бла бла) do net stop "%%a"

Надо немного изменить:

Код:
for /f "usebackq tokens=*" %%a in (`"net start | findstr бла бла"`) do net stop "%%a"
Автор: rbcl
Дата сообщения: 30.01.2007 23:29
Большое спасибо. Пойду синтаксис учить.
Автор: ProbaRK
Дата сообщения: 31.01.2007 00:40
Master Bob

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

Цитата:net user пользователь пароль /add /expires:never /passwordchg:no /passwordreq:no

- то устанавливантся только что срок действия САМОЙ УЧЕТКИ неограничен. а пароль со временем заканчивается.


Делал так:

NET USER User pass /ADD /EXPIRES:NEVER /FULLNAME:"Имя" /PASSWORDCHG:NO /COMMENT:"коментарий"
wmic useraccount set passwordexpires=false /nointeractive
net accounts /maxpwage:unlimited
Автор: igor_andreev
Дата сообщения: 31.01.2007 00:48
rbcl

Цитата:
Пойду синтаксис учить
Отсюда начни http://www.rsdn.ru/article/winshell/batanyca.xml
2ALL ссылку можно в шапку наверное, в "Полезные ссылки", хорошая статья для начинающих. Жалко короткая.
Автор: Elroir
Дата сообщения: 31.01.2007 00:58
igor_andreev
У меня эта страничка открылась только через русский proxy
Добавлено:
А сейчас нормально открывается...
Автор: UltiMacho
Дата сообщения: 31.01.2007 15:21
Подскажите, можно ли с пом. bat файла запустить приложение на удаленной машине?
Автор: Elroir
Дата сообщения: 31.01.2007 16:38
UltiMacho
Можно - посмотри описание утилиты PsExec.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.