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

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

Автор: 01MDM
Дата сообщения: 15.07.2009 10:23
slay1212

Цитата:
И в system32 и syswow64 shutdown.exe нет

Твоя система или рабочая? Может специально удалили, некоторые специально избавляются от потенциально опасных утилит. Запускай из dllcache или скопируй в %PATH%.

Это только предположение.
Автор: slay1212
Дата сообщения: 15.07.2009 12:02
01MDM
Система моя , вроде ничего не удалял используется как рабочая станция. Но самое странное когда запускаешь из cmd она находится . Надо в политиках полазить может там чего найду. Если не поможет придется psshutdown юзать.
Автор: JohnRD
Дата сообщения: 15.07.2009 12:12
01MDM

спасибо большое

Добавлено:
добрый день

подскажите пожалуйста
после добавления ключа
reg add HKCU\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d %%USERPROFILE%%\SapWorkDir\SapLogon.ini /f

необходимо перелогиниться, в переменных вроде уже есть запись но система не видит..

нет ли некой комманды чтобы не нужно было выходить - заходить в систему
чтонибудь rundll..

вот чтото нашел но немогу понять как воспользоваться
http://support.microsoft.com/?scid=kb%3Ben-us%3B104011&x=3&y=8

спасибо
Автор: 01MDM
Дата сообщения: 15.07.2009 12:46
JohnRD
С помощью nircmc.exe

Код:
nircmdc sysrefresh
Автор: JohnRD
Дата сообщения: 15.07.2009 12:55
01MDM

спасибо, хорошая утилитка
Автор: sater12345
Дата сообщения: 15.07.2009 13:48
Добрый день.
Возникла проблема с запоминанием пароля в винде, поэтому подскажите пожалуйста как создать batник, который бы для определённого пользователя в сети вводил бы имя польз-ля и пароль автоматически.
Спасибо.
Автор: tumpururum
Дата сообщения: 15.07.2009 14:24
добрый день,
Суть вопроса в удалении логического диска с WinDir ProgFiles ну и т.д. В свое время читал статью о том что с помощью *.bat можно сделать следующее. При начале загрузки Windows, когда начинает идти загрузочная заставка с бегущей полосой, пользователь может ввести/или не вводить пассворд и в зависимости от этого начнется удаление системного диска с перезаписью информации, что бы предыдущую невозможно было восстановить.


Собственно, то что я знаю:
- запихнуть в Autoexec.bat команду типа format C:, ну или модификации.
- можно запихнуть в завуалированном виде через папку %windir%\command

Но вот только как сделать так что бы инф невозможно было восстановить, и что бы эти действия производились по набору пассворда?

Спасибо за помошь заранее
Автор: JohnRD
Дата сообщения: 15.07.2009 14:32
01MDM

не помогла утилитка,
в переменных средах появилась переменная (но появилась она из за reg add),
set не показывает ее, даже если завести через
set SAPLOGON_INI_FILE=%USERPROFILE%\SapWorkDir\SapLogon.ini
все равно программа не увидит ее до перелогина.

комманда:
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM) "Environment", SMTO_ABORTIFHUNG,
5000, &dwReturnValue);

взятая от сюда http://support.microsoft.com/?scid=kb%3Ben-us%3B104011&x=3&y=8
тоже не помогает
в чем интересно дело?

еще вопрос: можно ли схватить переменную %username% под которым залогинился человек который сидит за компом, чтобы использовать для внесения той самой переменной
reg add HKCU\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d %%USERPROFILE%%\SapWorkDir\SapLogon.ini /f
в реестр именно в его HKCU\Environment

используя psexec удаленно, поскольку psexec использует свой %username%
тоесть как-будто человек сам выполнил эту команду от своего имени..

??



Автор: 01MDM
Дата сообщения: 15.07.2009 17:05
JohnRD

Код:
nircmdc sysrefresh environment
Автор: yuri7322
Дата сообщения: 15.07.2009 17:32
Есть файл-список директорий под названием dirlist
Нужно
1. скопировать из dirlist все файлы с расширением *.png;*.gif;*.jpg в папку img\
2. используя dirlist найти все файлы с именем style.css и склеить в один под названием result.css
Автор: 01MDM
Дата сообщения: 15.07.2009 18:05
yuri7322

Код:
@echo off
setlocal

cd.>result.css
for /f "tokens=*" %%i in (dirlist) do (
pushd "%%i"
call:1
call:2
popd
)
goto:eof

:1
for %%i in (*.png *.gif *.jpg) do copy "%%i" "C:\img"
goto:eof

:2
2>nul copy "%~dp0result.css"+style.css "%~dp0result.css"
Автор: yuri7322
Дата сообщения: 15.07.2009 19:59
01MDM, большое спасибо!
Автор: JohnRD
Дата сообщения: 16.07.2009 08:37
01MDM

спасибо, но не работает почему то.
1.cmd
reg add HKEY_CURRENT_USER\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d %%USERPROFILE%%\SapWorkDir\SapLogon.ini /f
nircmdc.exe sysrefresh environment

ни в SET нету и программа не видит эту USER переменную, если перелогиниться то все сразу хорошо.

что Вы имели ввиду
Цитата:
И наверное надо перезапустить cmd.


может проблема заключается не в том что система не видит эту переменную а в другом чем то?
Автор: 01MDM
Дата сообщения: 16.07.2009 10:49
JohnRD

Цитата:

nircmdc.exe sysrefresh environment


У меня работает... Добавляю значение в реестр, запускаю команду, перезапускаю cmd, ввожу set и переменная отображается в списке всех переменных. Попробуй %userprofile% без экранирования. Что-то мне подсказывает проблема где-то здесь.
Автор: JohnRD
Дата сообщения: 16.07.2009 12:36
01MDM

не, там все правильно, если не экранировать он в чистую имя впишет.

это я протупил... , CMD то из папки system32 пускается, а там нет nircmdc.exe
я сделал в сети 1.cmd и вписал туда

Код: reg add HKEY_CURRENT_USER\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d %%USERPROFILE%%\SapWorkDir\SapLogon.ini /f
nircmdc.exe sysrefresh environment
Автор: 01MDM
Дата сообщения: 16.07.2009 16:44
JohnRD
Извини, жара, все плавится, если прравильно понял вопрос, то я просто для сторонних утилит создал отдельную директорию %USERPROFILE%\BIN, прописал ее в HKCU\Environment в переменную %PATH%. Создал жесткие ссылки или батники для запуска нужных приложений. Все прекрасно работает.

Кстати совет, не тестируй батники из фара. При всех преимуществах, он подчас неправильно решает задачи. Проверить легко. Введи в ком.строке фара(Ctrl-O) команду echo %random% и повтори ее несколько раз. Неадекватная работа "налицо".
Автор: JohnRD
Дата сообщения: 16.07.2009 19:29
01MDM

спасибо, а про фар даже не знал - действительно "налицо" причем часто повторяет.

с nircmd все получилось,

случаем не подскажешь, какие варианты есть для внесения в реестр, в ветку пользователя реально залогиненого и работающего, с помощью PSEXEC от другого имени ? не считая подойти самому.
Автор: 01MDM
Дата сообщения: 16.07.2009 21:35
JohnRD

Цитата:
случаем не подскажешь,

Не админ. Батник == Кроссворд

Автор: madmasles
Дата сообщения: 17.07.2009 02:44
Уважаемые форумчане!
Помогите, пожалуйста, решить такой вопрос:
Батник запускается в скрытом режиме, на рабочем столе находится его ярлык. Как, при запуске батника проверить, запущен ли он уже, и если запущен, то не запускать его второй раз.
Спасибо.
Автор: JohnRD
Дата сообщения: 17.07.2009 06:49
01MDM


Цитата:
Не админ. Батник == Кроссворд
не понял, совсем непонял
Автор: smirnvlad
Дата сообщения: 17.07.2009 12:22
madmasles
вопрос уже поднимался http://forum.ru-board.com/topic.cgi?forum=62&topic=15343&start=1600#21 ответ на следующей странице
Автор: madmasles
Дата сообщения: 17.07.2009 13:51
smirnvlad
Спасибо, буду пробовать.

PS Извините, что задаю вопрос, на который ответ уже был дан ранее. Прежде чем задать вопрос, я 4 часа искал ответ на форуме, но не нашел
Автор: ZolotnikOV
Дата сообщения: 17.07.2009 17:44
помогите написать батник. начал читать и понял что сам не смогу.
условия таковы:
есть перечень файлов в папке E:\yyy
aaa***.xxx
bbb***.xxx
ccc***.xxx
ddd***.xxx
нужно их из этой папки переместить и рассортировать
по папкам:
E:\yyy\aaa\
E:\yyy\bbb\
E:\yyy\ccc\
E:\yyy\ddd\

(названия начала файлов соответствуют названиям папок)

большое спасибо за помощь.
Автор: king_stiven
Дата сообщения: 17.07.2009 19:49
ZolotnikOV

Код: @echo off
cd /d E:\yyy
md aaa
md bbb
md ccc
md ddd
for %%e in (*) do (
set ty=%%e
call :hj
)
goto :eof
:hj
if "%ty:~0,3%"=="aaa" move "%ty%" aaa
if "%ty:~0,3%"=="bbb" move "%ty%" bbb
if "%ty:~0,3%"=="ccc" move "%ty%" ccc
if "%ty:~0,3%"=="ddd" move "%ty%" ddd
Автор: king_stiven
Дата сообщения: 17.07.2009 23:56
2 вариант

cd /d E:\yyy
for %%e in (aaa bbb ccc ddd) do (
md %%e
for %%f in (%%e*) do move "%%f" %%e
)
Автор: Seryoga204
Дата сообщения: 19.07.2009 12:21
Привет. кто знает можно ли реализовать в bat такую идею: в каталоге С:\DAS\ находятся папки с именем типа 09_07_01, 09_07_02, 09_07_03 и т.д. тоесть папки имееют название даты создания 09_07_01 - 01 июля 2009г. надо скопировать с папки имеющей название текущей даты файл с именем начинающимся на @55 в каталог С:\LLL\ и переименовать в 1.txt а также с папки с названием предыдущей даты(на один рабочий день меньше - папок с датой субб. и воскресенья нет) в каталог С:\LLL\ и переименовать в 2.txt. Пример: сегодня 20.07.2009 надо с копировать с папки 09_07_20 в папку С:\LLL\ и переименовать в 1.txt и с папки 09_07_17 в каталог С:\LLL\ и переименовать в 2.txt . Помогите сам не разберусь.
Автор: king_stiven
Дата сообщения: 19.07.2009 13:34
Seryoga204
А если запустил 1 07 09, то первая папка будет за этот день, а вторая за 30 06 09 уже не годится? echo %date% что показывает?

Добавлено:
Seryoga204
@echo off
cd /d С:\DAS
for /f "tokens=*" %%c in ('dir /t:c /b /a:d /o:-d') do (
if not defined fgh echo %%c
if defined fgh (
echo %%c
pause
goto :eof
)
set fgh=1
)
этот батник выводит на экран две папки по созданию от молодых к старым, вместо
echo %%c
сам можешь раписать нужные действия

if not defined fgh echo %%c-здесь показывает первую папку
if defined fgh (
echo %%c-здесь вторую

не получится спросишь
Автор: Seryoga204
Дата сообщения: 19.07.2009 20:30
king_stiven спасибо огромное, а можеш расказать что куда прописывать еще, на моем примере а то я еще не совсем ориентируюсь в написании команд для батника.Заранее спасибо.
Автор: king_stiven
Дата сообщения: 20.07.2009 07:05
Seryoga204

Код: @echo off
cd /d С:\DAS
for /f "tokens=*" %%c in ('dir /t:c /b /a:d /o:-d') do (
if not defined fgh for %%d in ("%%c\@55*") do copy "%%d" С:\LLL\1.txt
if defined fgh (
for %%e in ("%%c\@55*") do copy "%%e" С:\LLL\2.txt
goto :eof
)
set fgh=1
)
Автор: sergxz
Дата сообщения: 20.07.2009 12:44
была проблема о которой писал выше, подсказали решение, но оказалось что не всегда оно срабатывает. Суть проблемы, необходимо подключаться к удаленным компьютерам, забирать оттуда файлы.
Код:
net use k: \\10.28.28.120\share /user:oi password //Подключаемся к удаленной машине
xcopy k:\files.rar d:\Temp /D /e /c /z /y //Копируем нужные файлы на локальный компьютер
net use k: /delete Отключаем диск К чтобы дальше использовать эту букву для подключения следующего компьютера
И по новой
net use k: \\10.28.28.121\share /user:oi password
xcopy k:\files1.rar d:\Temp /D /e /c /z /y
net use k: /delete
И так 52 компьютера....
Но каждый раз, перед отключением диска батник задает вопрос:
"Остались открытые файлы или каталоги, продолжить отключение? Y / N" Жмем Y, диск отключается, батник продолжает работу. Поднимал здесь этот вопрос, и мне подсказали использовать такой код:
echo y|net use k: /delete
Я обрадовался, думал все заработало..но при использовании часто возникает ошибки.Иногда, а скорее часто он не отключает диск К, а вместо этого пишет
"Не был получен допустимый отклик".
Как то систематизировать ошибку не смог, когда она появляется, при каких случаях..вроде бы нет системы...Посему и не понятно что за ошибка.
Есть мысли?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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