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

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

Автор: Nagual
Дата сообщения: 08.07.2011 08:53
GRiMka
pobocopy/mir что куда
Автор: JohnRD
Дата сообщения: 08.07.2011 08:58
вопрос такой
как подождать загрузки юзера и закончить скрипт?
Автор: BVV63
Дата сообщения: 08.07.2011 09:22
JohnRD
Пусть при регистрации в системе пользователей выполняется скрипт следующего содержания:

Код: "Reg Copy "HKCU\Keyboard Layout\Toggle" "HKU\.Default\Keyboard Layout\Toggle" /F
Автор: wolf0425
Дата сообщения: 08.07.2011 09:44
Jin32

Цитата:
Так бы тоже подошло, но как это сделать? Хотя бы примерно?

да тупо - потрошишь %time%, вычисляешь количество секунд от начала суток, например так:
set "_time=%time: =0%"
set /a     _time1=( 100%_time:~0,2% %% 100 * 60 + 100%_time:~3,2% %% 100 )*60 + 100%_time:~6,2% %% 100

аналогичные операции после первой смены времени и после окончания программы - из этих двух величин считаешь разность - это будет продолжительность работы программы в секундах, добавляешь её к _time1 и полученное количество секунд пересчитываешь обратно в часы-минуты-секунды, после чего устанавливаешь время.
Автор: JohnRD
Дата сообщения: 08.07.2011 10:18
BVV63

Цитата:
Пусть при регистрации в системе пользователей выполняется скрипт


если скрипт от имени пользователя то у него не хватит прав вписать в HKU\.Default\
права админа нужны

если скрипт от имени системы то
HKCU для системы и есть HKU\.Default\

потому я и написал что скрипт выполнятся должен от имени системы, читать ветку HKU\.Default\, далее ждать загрузки юзера, читать его ветку и писать в первую если они различаются,

если на этой машине загрузится другой пользователь то скрипт должен сменить раскладку системы под него.
Автор: BVV63
Дата сообщения: 08.07.2011 11:03
JohnRD

Цитата:
если скрипт от имени пользователя то у него не хватит прав вписать в HKU\.Default\

Согласен.
С другой стороны никто не запрещает именно на этот ключ (HKU\.Default\Keyboard Layout\Toggle) права подредактировать, дабы у пользователей была возможность изменения.
Автор: Luna_Q
Дата сообщения: 08.07.2011 12:06
Помогите пожалуйста разобраться, писал батник и понадобилось использовать SED (super-sed version 3.59 based on GNU sed version 3.02.80).
Хочу очистить xml от элементов кода, начал было за здравие:

Код: sed.exe -e "s/</ /g" -e "s/>/ /g" -e "s/?/ /g" -e "s/=/ -/g" <1.xml >xml.txt
Автор: IFKey
Дата сообщения: 08.07.2011 12:11
Здравствуйте, возможноли на bat'нике организовать простенькую программу которая будет вытаскивать файл: http://special-parts.ru/NameColorizing/?get=DownloadNameColorizing и сохраняь его в определенной директории жесткого диска? Если да, подкиньте пожалуйста примерчик.
Автор: Jin32
Дата сообщения: 08.07.2011 12:16

Цитата:
да тупо - потрошишь %time%, вычисляешь количество секунд от начала суток, например так:
set "_time=%time: =0%"
set /a _time1=( 100%_time:~0,2% %% 100 * 60 + 100%_time:~3,2% %% 100 )*60 + 100%_time:~6,2% %% 100

аналогичные операции после первой смены времени и после окончания программы - из этих двух величин считаешь разность - это будет продолжительность работы программы в секундах, добавляешь её к _time1 и полученное количество секунд пересчитываешь обратно в часы-минуты-секунды, после чего устанавливаешь время.

Ну в общих чертах это понятно, а как проще всего из количества секунд с начала суток получить время в привычном формате?
Автор: wolf0425
Дата сообщения: 08.07.2011 12:39

Цитата:
а как проще всего из количества секунд с начала суток получить время в привычном формате?

set /a     _time1sec = %_time1% %% 60
set /a     _time1min = (%_time1% /60 ) %% 60
set /a     _time1hour = %_time1% /3600
echo time %_time1hour%:%_time1min%:%_time1sec%
дописывать ведущие нули для time как бы незачем.


Добавлено:
IFKey
wget http://special-parts.ru/NameColorizing/?get=DownloadNameColorizing -O c:\file.txt

wget.exe ищешь в шапке или в гугле.

Добавлено:
Luna_Q лучше напиши пример - что править и что должно получиться
Автор: Luna_Q
Дата сообщения: 08.07.2011 12:57

Цитата:
лучше напиши пример - что править и что должно получиться

вот пример куска xml:

Код: <Build>2600</Build>
            <PlatformID>2</PlatformID>
            <Edition>Professional</Edition>
            <Capacity>x32</Capacity>
            <LangUI>Russian</LangUI>
Автор: wolf0425
Дата сообщения: 08.07.2011 13:25
т.е. закрываюзие теги просто вырезать, у открывающих - убрать <>?

sed.exe -r "s/<\/[^>]*>//g;s/<([^>]*)>/\1 /g" <1.xml >xml.txt

но в примере как-то не все символы, которые ты пытался заменять выше.
Автор: Luna_Q
Дата сообщения: 08.07.2011 13:43
wolf0425 Спасибо! Второй день пытаюсь справку по SEDу осилить, не могу нормального источника найти.

Цитата:

но в примере как-то не все символы, которые ты пытался заменять выше.


Вот:

Код: ?xml version="1.0" encoding="windows-1251"?
Автор: wolf0425
Дата сообщения: 08.07.2011 14:10
Luna_Q вроде так:

Код: sed.exe -r "/<\/package>/,$ d;s/<\/[^>]*>//g;s/<([^>]*)>/\1 /g;s/[<>\x22\/?]//g" <1.xml >xml.txt
Автор: Luna_Q
Дата сообщения: 08.07.2011 14:25
wolf0425 СПАСИБИЩЕ! Работает! Не подскажешь в ЛС источник, где почитать по командам и выражениям?
Автор: sfinx26
Дата сообщения: 08.07.2011 15:03
01MDM Огромное пасибо!!!!

Цитата:

Код:
@echo off
setlocal

set "cnt=100"
for /f "tokens=*" %%i in (' dir /b /s /ad ') do call:menu "%%i"
echo .......
set /p choice="Choose folder to copy: "
set /a choice+=100

for /f "tokens=2 delims==" %%i in (' set item_%choice% ') do echo copy /y "%%i\*"
goto:eof

:menu
set "item=%~1"
set /a cnt+=1

setlocal enabledelayedexpansion
echo [%cnt:~-2%] !item:%cd%\=!
endlocal

set "item_%cnt%=%~1"



Подразумевается, что батник лежит в корневой папке. И папок не больше 99.


чутка допилил

Цитата:

@echo off
setlocal

set "cnt=100"
for /f "tokens=*" %%i in (' dir /b /s /ad ') do call:menu "%%i"
echo .......
set /p choice="Choose folder to copy: "
set /a choice+=100

for /f "tokens=2 delims==" %%i in (' set item_%choice% ') do copy /y "%%i\* " %~dp0
goto:eof

:menu
set "item=%~1"
set /a cnt+=1

setlocal enabledelayedexpansion
echo [%cnt:~-2%] !item:%cd%\=!
endlocal

set "item_%cnt%=%~1"
Автор: Gassmann00
Дата сообщения: 09.07.2011 09:44
уже несколько дней пытаюсь решить, не получается (OS: win 7 x64)

нужно получит название последней папки из полного пути

этот вариант работает

set pathtofind=...any path....

cd /d %pathtofind%
set path1=%cd%
cd ..
set path2=%cd%

call set "path3=%%path1:%path2%\=%%"

echo %path3%


а вот когда в цикле, уже нет

SETLOCAL ENABLEDELAYEDEXPANSION

for /f "tokens=*" %%i in (' dir /b /s /ad ') do (

cd /d "%%~pnxi"

set path1=!cd!
cd ..
set path2=!cd!
call set "path3=!!path1:!path2!\=!!"

echo !path3!

)

где я туплю ...
Автор: 01MDM
Дата сообщения: 09.07.2011 10:18
Gassmann00

Цитата:
нужно получит название последней папки из полного пути


Код:
@echo off
for %%i in ( "%cd%" ) do echo %%~nxi
Автор: Seryoga204
Дата сообщения: 10.07.2011 16:49
Как выбрать из файла (в кодировке 1251), все строки которые начинаются на "Вход" и "Выход" и скопировать в отдельный файл.
Автор: king_stiven
Дата сообщения: 10.07.2011 19:28
Seryoga204
sed ом или штатными?
Автор: Seryoga204
Дата сообщения: 10.07.2011 19:54
Пробывал так,

Код: @echo off
chcp 1251>nul
FindStr /BRC:"Вход" /C:"Выход" *.* >1.txt
Автор: NIKZZZZ
Дата сообщения: 11.07.2011 08:03
Seryoga204

Цитата:
Пробывал так

chcp 1251 не поможет, нужно просто написать сам батник в кодировке 1251.


Автор: zzz247
Дата сообщения: 11.07.2011 08:54
Здавствуйте. Нужен батник который запускал бы из командной строки следующие команды arp -d, ipconfig /release и ipconfig /renew
начало прописал:
@ECHO OFF
start /MAX cmd.exe

stop
а как дальше прописывать не знаю.
Автор: wolf0425
Дата сообщения: 11.07.2011 09:30
zzz247

Код: @ECHO OFF
arp -d
ipconfig /release
ipconfig /renew
pause
exit
Автор: zzz247
Дата сообщения: 11.07.2011 09:47
wolf0425 спасибо.
А есть возможность запускать все это в определенные дни недели и определенное время, если этот батник в автозагрузку кинуть. Как это нужно прописать в батнике?
Автор: Free_Soft
Дата сообщения: 11.07.2011 10:49
zzz247 10:47 11-07-2011
Цитата:
Как это нужно прописать в батнике?


В батнике никак. Запускай сценарий из планировщика
Автор: wolf0425
Дата сообщения: 11.07.2011 11:07

Цитата:
В батнике никак. Запускай сценарий из планировщика
не то чтоб совсем никак - только смысла извращаться нет, планировщик настроить действительно и проще и полезнее.
Автор: Seryoga204
Дата сообщения: 11.07.2011 18:56
NIKZZZZ

Цитата:
Seryoga204

Цитата: Пробывал так


chcp 1251 не поможет, нужно просто написать сам батник в кодировке 1251.


И так пробывал, не помогает.

Автор: 01MDM
Дата сообщения: 11.07.2011 20:47
Seryoga204
Подозреваю, что это баг:

Код:
@echo off

findstr /b "вход" 1.txt
findstr /b "выход" 1.txt
findstr /b "йцукен" 1.txt
findstr /b "фыва" 1.txt
Автор: smirnvlad
Дата сообщения: 11.07.2011 21:28
01MDM
на XP тоже не дружит с "ы" и c "В", но работает если текст в файле

Seryoga204
батник в win1251 кодировке

Код:
set "file=%~nx0.tmp.%random%.%random%.tmp"

echo.Вход>%file%
echo.Выход>>%file%

FindStr /B /G:%file% *.* >1.txt

del %file%

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


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