Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выполнение команд с внешнего устройства

Ответить
Настройки темы
CMD/BAT - Выполнение команд с внешнего устройства

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Нужен скрипт добавляющий OEM информацию в WIn 8 работающий с внешнего устройства. Написал ниже приведенный пример. С рабочего стола запускается, а с внешнего устройства не хочет. Я в этом деле новичок, поэтому не судите строго. Помогите пожалуйста. Заранее благодарю.
Код: Выделить весь код
@echo off

copy %~dp0\OEMLogo.bmp C:\Windows\System32\
%~dp0\oeminfo.reg

Отправлено: 00:44, 24-09-2013

 

Аватара для IgCat

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну, раз новичок...

1) "@echo off" при отладке лучше временно убрать (или закомментировать) - поможет увидеть процесс и понять причину несработки. А в конце скрипта добавить "pause" - чтобы окно не исчезало сразу.

2) Переменная "%~dp0" дает полный путь родительской папки, включающий _завершающий_слеш_. Поэтому, конструкция вида
Код: Выделить весь код
%~dp0\oeminfo.reg
при запуске скрипта из папки "F:\scripts" будет расшифрована командным процессором в
Код: Выделить весь код
F:\scripts\\oeminfo.reg
, что закончится ошибкой.

3) Поскольку реальные пути потенциально могут содержать пробелы и пр. экзотику, стоит _всегда_ помещать конструкции, содержащие переменные окружения, в двойные кавычки. Т.е. не

Код: Выделить весь код
copy %~dp0\OEMLogo.bmp C:\Windows\System32\


Код: Выделить весь код
copy "%~dp0OEMLogo.bmp" "C:\Windows\System32\"
Ну, и на последок: лучше использовать "%SYSTEMROOT%\System32\" вместо "C:\Windows\System32\". Так оно поуниверсальнее будет...

В целом - держите под рукой файл "ntcmds.chm" из состава WinXP, который незаслуженно утеряли в новых версиях Винды. Удачи.

Отправлено: 19:17, 30-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Выделение моё:
Цитата IgCat:
при запуске скрипта из папки "F:\scripts" будет расшифрована командным процессором в
Код: Выделить весь код
F:\scripts\\oeminfo.reg
, что закончится ошибкой. »
Да ну . Молча скопирует.

P.S. По сути же — всё верно.


Цитата IgCat:
держите под рукой файл "ntcmds.chm" из состава WinXP, который незаслуженно утеряли в новых версиях Винды. »
Download Windows Command Reference from Official Microsoft Download Center

Отправлено: 22:48, 30-09-2013 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное вам спасибо. Очень подробный и доступный ответ. Я решил объединить все в один файл. Взгляните на скрипт пожалуйста, может в нем тоже есть что оптимизировать. :-)

Код: Выделить весь код
@echo off

xcopy  /h /y "%~dp0OEMLogo.bmp" "%SYSTEMROOT%\System32\"
reg add "hklm\software\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v logo /t reg_sz /d C:\windows\system32\OEMLogo.bmp
reg add "hklm\software\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v Manufacturer /t reg_sz /d "example"
reg add "hklm\software\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v SupportHours /t reg_sz /d "example"
reg add "hklm\software\Microsoft\Windows\CurrentVersion\OEMInformation" /f /v SupportPhone /t reg_sz /d "example"

Отправлено: 11:40, 01-10-2013 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Например, так :
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sFileOEMLogo=OEMLogo.bmp
set sKeyPath=HKLM\software\Microsoft\Windows\CurrentVersion\OEMInformation

if exist "%~dp0%sFileOEMLogo%" (
	xcopy.exe /h /y "%~dp0%sFileOEMLogo%" "%SystemRoot%\System32\"
) else (
	echo Can't find OEM logo file [%sFileOEMLogo%].
)

reg.exe add "%sKeyPath%" /f /v Logo         /d "%SystemRoot%\System32\%sFileOEMLogo%"
reg.exe add "%sKeyPath%" /f /v Manufacturer /d "example"
reg.exe add "%sKeyPath%" /f /v SupportHours /d "example"
reg.exe add "%sKeyPath%" /f /v SupportPhone /d "example"

endlocal
exit /b 0

Отправлено: 12:53, 01-10-2013 | #5


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


С виду мой вариант поменьше.)))
Могли бы вы, когда у вас будет свободное время описать, чем ваш код лучше. И если можно рядом с каждой командой напишите ее описание в двух словах. Благодарю за понимание.

Отправлено: 20:35, 01-10-2013 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Не благодарите, ибо «не могли бы». Вот ежели спросите, что непонятно — отвечу.

Отправлено: 22:46, 01-10-2013 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выполнение команд с внешнего устройства

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Последовательное выполнение команд из txt rvm.luma Скриптовые языки администрирования Windows 5 06-09-2013 14:21
VBS/WSH/JS - [решено] Выполнение Exchange команд Ыть Скриптовые языки администрирования Windows 6 15-02-2012 20:07
CMD/BAT - Выполнение команд в фоновом режиме браузера ZeVSalt Скриптовые языки администрирования Windows 4 10-11-2011 07:56
CMD/BAT - выполнение команд из списка в txt файле systemroot Скриптовые языки администрирования Windows 2 12-02-2011 17:49
PowerShell - Удаленное выполнение команд Powershell + WMI nigra Скриптовые языки администрирования Windows 0 19-05-2010 16:36




 
Переход