Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: Smitis
Дата сообщения: 19.04.2007 10:56
Elroir
vshersh
Несколько замечаний:
1. REG_SZ лучше не искать. Там может быть и REG_EXPAND_SZ
2. Системная переменная PATH составляется из двух частей: из HKCU и HKLM (в принципе, может брать ещё из autoexec.bat и config.sys, но это детали), так что ветку реестра можно не менять.
3. После изменения переменной через REG система ещё не будет знать об её изменении, надо дать команду (вроде) rundll32 user32.dll,UpdatePerUserSystemParameters

И вообще, посмотрите утилиту PATHMAN из Resource Kit-а именно для данной цели (удаление / добавление путей в любую часть PATH)
pathman RESKIT
Автор: igor_andreev
Дата сообщения: 19.04.2007 11:34

Цитата:
И вообще, посмотрите утилиту PATHMAN из Resource Kit-а

От себя рекомендую EDITPATH, я ей пользуюсь.
http://www.jsifaq.com/SF/Tips/Tip.aspx?id=8840
умеет проверять, есть ли папка в PATH, возвращает 0 или 1, в батниках удобно пользоваться. Ну и добавить-удалить-прочитать само-собой.
Автор: AlessTO
Дата сообщения: 22.04.2007 19:45
Граждане! Есть проблема:
Требуется установить прогу (ПЕРЕсобранную) и, чтоб не париться с настройкой решено было внести изменения в реестр прямо при инсталле. Но эта <%%!Е;!!> часть настроек пишет в sID (куст типа HKU\S-1-5-21-...
Необходим код - вот основа (подогнали добрые люди)

Код: Set WshShell = CreateObject("Wscript.Shell")
Set fso = Wscript.CreateObject("Scripting.FilesystemObject")
fName = WshShell.SpecialFolders("Desktop") & "\SIDlist.txt"
Set b = fso.CreateTextFile(fName, true)


strProfileBranch = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount")

For Each objAccount in colAccounts
If objAccount.Name = "HelpAssistant" or objAccount.Name = "SUPPORT_388945a0" or objAccount.Name = "Администратор" or objAccount.Name = "Гость" then
else
b.writeline "" & objAccount.SID
end if
Next

Function GetHomePath(strSID)
On Error Resume Next
GetHomePath = WshShell.ExpandEnvironmentStrings(Trim(WshShell.RegRead (strProfileBranch & strSID & "\ProfileImagePath")))
On Error Goto 0
End Function

b.close
WshShell.Run "notepad.exe " & fName

Set fso = Nothing
set Wshshell = Nothing
Автор: Elroir
Дата сообщения: 22.04.2007 20:36
AlessTO
Для того, чтобы записать что-либо в ветку HKU\S-1-5-21.., которая относится к юзеру, под которым в данный момент запущена Windows, совершенно не обязательно знать SID этого юзера. Его ветка HKU\S-1-5-21... полностью находится в HKCU. То есть в .reg файле надо поменять все упоминания о HKU\S-1-5-21...\КЛЮЧ на HKCU\КЛЮЧ.
Автор: AlessTO
Дата сообщения: 22.04.2007 22:41
Elroir
большой сенькс
Автор: igor_andreev
Дата сообщения: 29.04.2007 13:47
Тут один месяц и пять страниц назад uart78 спрашивал:

Цитата:
Подскажите , как запускать любую прогу с командной строки свернутой в трей

Я сейчас именно на такую и наткнулся случайно, 4 Кб всего
Trayconizer -minimize notepad.exe
Самому uart78 наверно уже не надо, но на всяк случай, если вдруг еще кому понадобится, дам тут линк... http://www.whitsoftdev.com/trayconizer/
Автор: maklab
Дата сообщения: 29.04.2007 17:47
возможно ли что б bat файл создавал каталог в формате даты, но к примеру 2007-04-29 ? У меня что т оне выходит ни как....
Автор: Elroir
Дата сообщения: 29.04.2007 17:50
maklab
Какой у тебя формат даты? (запусти "echo %date%")
Автор: maklab
Дата сообщения: 29.04.2007 19:01
29.04.2007 вот такой
Автор: Elroir
Дата сообщения: 29.04.2007 19:09
maklab

Код:
md %date:~6,4%-%date:~3,2%-%date:~0,2%
Автор: maklab
Дата сообщения: 29.04.2007 19:30
опа на, неделя мучений спасибо!!! Я уже на AutoITе думал все переделывать
Автор: ZloyBehemoth
Дата сообщения: 02.05.2007 06:30
Скажите, можно из комстроки создать запланированное задание (sheduled task) которое должно выполняться от имени локального пользователя?
Автор: uZver
Дата сообщения: 02.05.2007 08:47
ZloyBehemoth
at /?
Команда AT предназначена для запуска команд и программ в указанное время
по определенным дням. Для использования команды AT необходимо, чтобы была
запущена служба расписаний.
Автор: ZloyBehemoth
Дата сообщения: 02.05.2007 10:00
uZver

Цитата:
at /?


Это понятно. Исполнятся это задание будет от системной учетной записи. А мне надо что бы исполнялось от имени локального пользователя.
Автор: KapralBel
Дата сообщения: 02.05.2007 10:08
ZloyBehemoth
А вариант запустить службу Планировщик заданий от имени локального пользователя тебя устроит?
Автор: ZloyBehemoth
Дата сообщения: 02.05.2007 10:18
KapralBel

Цитата:
А вариант запустить службу Планировщик заданий от имени локального пользователя тебя устроит?


Нет. Там будут задания которые должны запускаться как обычно, т.е. под системной уч. записью.
Автор: KapralBel
Дата сообщения: 02.05.2007 10:30
ZloyBehemoth
Тогда обрати внимание на nnCron - там все задания в текстовом виде - можно сформировать и добавить к нужному файлу. nnCron автоматически подхватит изменение

Второй вариант - в задании запускать батничек первой строкой которого идет RunAS
Автор: PerpleXOR
Дата сообщения: 03.05.2007 10:56
коллеги, подскажите такую вещь, задача в общем простая - скопировать файлы с компакт-диска на винт, но необходимо 2 условия:

1) Тихое копирование - чтобы преподаватель не увидел, что его лекции уплывают )))
2) чтобы скрипт как-то сам себя запускал, или периодически проверял наличие cd в приводе - машина отключена от сети и момент собственно засовывания диска в привод не известен.

заранее спасибо
Автор: Elroir
Дата сообщения: 03.05.2007 13:16
PerpleXOR

Цитата:
Тихое копирование - чтобы преподаватель не увидел, что его лекции уплывают

Светодиод на приводе и на системном блоке в любом случае будут мигать при копировании.
Автор: PerpleXOR
Дата сообщения: 03.05.2007 17:26
это не важно, у него и так презентации с диска читаются, а комп вообще стоит в стоу, и не видно его.
что посоветуете ?
Автор: Elroir
Дата сообщения: 03.05.2007 19:06
PerpleXOR

Код:
@echo off
cmdow @ /hid
:try
if exist e:\*.* (
copy откуда_копировать\файлы.abc куда_копировать\
if %errorlevel%==0 exit /b
)
sleep 300
goto try
Автор: PerpleXOR
Дата сообщения: 03.05.2007 21:12
Elroir
огромное спасибо!!!!!!!
он будет копировать все файлы и каталоги, без разбору ?
Автор: Elroir
Дата сообщения: 04.05.2007 00:04
PerpleXOR

Цитата:
он будет копировать все файлы и каталоги, без разбору ?

Нет. В этом варианте надо прописать путь в строчке "copy ... ".
А надо все?
Автор: utka00
Дата сообщения: 04.05.2007 01:03
Такой вопрос: можно ли подключиться к инету через командную строку, не создавая при этом подключения?
Заранее спасибо
Автор: Elroir
Дата сообщения: 04.05.2007 01:28
utka00
Нет.
Автор: PerpleXOR
Дата сообщения: 04.05.2007 11:17
да, надо все, причем заранее названия каталогов неизвестны
Автор: KapralBel
Дата сообщения: 04.05.2007 11:28
PerpleXOR
замени copy на xcopy - она позволяет копировать с подкаталогами
Автор: Elroir
Дата сообщения: 04.05.2007 14:20
PerpleXOR

Цитата:
да, надо все, причем заранее названия каталогов неизвестны

Как сказал KapralBel, меняем copy на xcopy:

Код: xcopy e:\ d:\temp\ /e
Автор: KapralBel
Дата сообщения: 04.05.2007 14:28
PerpleXOR
Есть еще одно, если вставить 2 диска подряд и на 2-м есть файлы с теми же именами что и на 1-м - то 1-й вариант будет переписан
Автор: PerpleXOR
Дата сообщения: 04.05.2007 15:12
всё, спасибо большое, всё заработало !

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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