Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Выполнение команд с внешнего устройства (http://forum.oszone.net/showthread.php?t=268655)

drmodjo 24-09-2013 00:44 2222877

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

@echo off

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


IgCat 30-09-2013 19:17 2226334

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

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, который незаслуженно утеряли в новых версиях Винды. Удачи.

Iska 30-09-2013 22:48 2226438

Выделение моё:
Цитата:

Цитата IgCat
при запуске скрипта из папки "F:\scripts" будет расшифрована командным процессором в
Код:

F:\scripts\\oeminfo.reg
, что закончится ошибкой. »

Да ну ;). Молча скопирует.

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


Цитата:

Цитата IgCat
держите под рукой файл "ntcmds.chm" из состава WinXP, который незаслуженно утеряли в новых версиях Винды. »

Download Windows Command Reference from Official Microsoft Download Center

drmodjo 01-10-2013 11:40 2226633

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

Код:

@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"


Iska 01-10-2013 12:53 2226676

Например, так ;):
читать дальше »
Код:

@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


drmodjo 01-10-2013 20:35 2226979

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

Iska 01-10-2013 22:46 2227046

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


Время: 05:52.

Время: 05:52.
© OSzone.net 2001-