Правильно написан Bat-файл

Кирф

Турист
Добрый день! Обращаюсь к Вам, читающему этот текст. Скажите, правильно написан Bat-файл или нет?

@echo off
if not exist %temp%\FontBack mkdir %temp%\FontBack>nul
for %%a in (c_1252.nls,c_1253.nls,c_1254.nls,c_1255.nls) do (
echo n|>nul copy %windir%\system32\%%a %temp%\FontBack
takeown /f %windir%\system32\%%a>nul
echo y|>nul cacls %windir%\system32\%%a /g %username%:f>nul
del /f /q %windir%\system32\%%a>nul
copy %windir%\System32\C_1251.NLS %windir%\System32\%%a>nul
)
shutdown -r -t 1

Моя задача. В Windows 7 заменить содержимое файлов c_1252.nls,c_1253.nls,c_1254.nls,c_1255.nls на содержимое файла C_1251.NLS.
Заранее благодарю за ответ.
С уважением. Кирф.
 

Ahell

Турист
Моя задача. В Windows 7 заменить содержимое файлов c_1252.nls,c_1253.nls,c_1254.nls,c_1255.nls на содержимое файла C_1251.NLS.
1. этого нельзя делать
2. ваша система вылетит в трубу если вы это сделаете.
 

Кирф

Турист
Проверил Bat-файл и обновление

Здравствуйте! Кто может подсказать? Проверил Bat-файл и обновление (файл Windows6.1-KB917607-x86.msu) для Windows 7, который и привожу.

@Echo Off
Title Installing Windows7 Updates
For %%F In (MSU\*.msu) Do Call :msin %%F
For %%A In (CAB\*.cab) Do Call :kbin %%A
Exit
:msin
Start /Wait %1 /quiet /norestart
:kbin
Start /Wait pkgmgr /ip /m:%1 /quiet /norestart
GoTo :EOF

В папку MSU помещаю файл с обновлением Windows6.1-KB917607-x86.msu.
Bat-файл и папка MSU находятся в одной директории.
Запускаю Bat-файл и перезагружаю компьютер. Результат. Файл HLP не читается.

Тогда поступаю грубо. Открываю программу «Windows Commander», открываю папку MSU и нажимаю клавишу Enter на файле Windows6.1-KB917607-x86.msu и в ручном режиме произвожу обновление. Перезагружаю компьютер, и файл открыт, только вместо русского текста «абракадабра».
Вопрос. Что в Bat-файле не правильно? Почему обновление не произошло по командой Bat-файла?
Кирф.
 

Кирф

Турист
Правильно составлен Bat-файл?

:) Уважаемый Ahell! Огромное спасибо за ответ. Но проблема в том, что после запуска этого Bat-файла система не упала, но и неисчезла "абракадабра". Хотя DOS-кое окно открывалось.
Пришлось устанавливать программу Unlocker и с помщью её удалять файлы c_1252.nls, ..., c_1255 и на их место копировать через Проводник файлы c_1252.nls, ..., c_1255.nls с диска С. Предварительно содержание их было изменено на содержимое файла c_1251.nls.
После перезагрузки компьютера кириллица стала читаться.
Но моя задача сделать это минуя программу Unlocker. Нажал кнопку программы или Bat-файл и всё выполнилось.
С уважением. Кирф.
 

Ahell

Турист
Хм, не знал, что будет работать если заменить содержимое.
Но моя задача сделать это минуя программу Unlocker. Нажал кнопку программы или Bat-файл и всё выполнилось.
Никак.
Система держит эти файлы открытыми. Закрыть их дескрипторы можно только из режима ядра, как это делает Unlocker.
Либо с LiveCD.
 

U-Gin

Турист
:) Уважаемый Ahell! Огромное спасибо за ответ. Но проблема в том, что после запуска этого Bat-файла система не упала, но и неисчезла "абракадабра". Хотя DOS-кое окно открывалось.
Пришлось устанавливать программу Unlocker и с помщью её удалять файлы c_1252.nls, ..., c_1255 и на их место копировать через Проводник файлы c_1252.nls, ..., c_1255.nls с диска С. Предварительно содержание их было изменено на содержимое файла c_1251.nls.
После перезагрузки компьютера кириллица стала читаться.
Но моя задача сделать это минуя программу Unlocker. Нажал кнопку программы или Bat-файл и всё выполнилось.
С уважением. Кирф.
А ты запускал файл из командной строки с правами админа?
 

Ahell

Турист
Не поможет. Админ как и пользователь - всего лишь пользователь, только с большими правами, но это не значит что админ может взять и вырвать открытый файл у системы.
 

Bolverk

Турист
Как вариант - загрузится с диска (Windows Live), потом запустить батник
 
Top