Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов
Petya V4sechkin
15-09-2008, 21:42
Если вводить полное название, то выдает ошибку еще страннее которую мне не понять
В кавычки надо брать.
Поскольку на мой вопрос от 12 июня никто пока не ответил, я в надежде на ответ удалил текст вопроса там и помещаю его вновь (в правилах форума запрета на это нет):
Возможен ли батник, изменяющий в Windows местоположение папок "Мои документы" для всех пользователей компа, с переносом, соответственно, содержимого этих папок?
Новый адрес папки "Мои документы" для каждого пользователя должен выглядеть так: "D:\ Документы_Имя учетной записи". То есть при учетных записях "Вася" и "Петя" на диске D должны образоваться две папки: "Документы Вася" и "Документы Петя", заполненные соответственно их документами. Батник должен нормально отрабатывать и на русской, и на английской винде (т. е. исходная папка в Windows может, видимо, иметь разные названия (рус. и англ.).
Возможно ли через батник, Взять значения из реестра и записать их в файл .reg??? Если можно то как???
Medic84, в описании команды Reg сказано: Добавляет, изменяет и отображает на экране информацию разделов реестра и значение записей реестра.
Можете про нее более детально почитать, и попробывать с ее помощью сделать то что вам нужно...
reg export
Копирование указанных подразделов, записей и значений реестра на локальном компьютере в файл для передачи на другие серверы.
Синтаксис
Reg export имя_раздела имя_файла [/y]
Параметры:
имя_раздела - Задает полный путь к разделу. Операция export работает только на локальном компьютере. имя_раздела должно содержать допустимый корневой раздел. Допустимыми корневыми разделами являются HKLM, HKCU, HKCR, HKU и HKCC.
имя_файла - Имя файла и путь файла, который будет создан в ходе операции. Файл должен иметь расширение .reg.
/y - Заменяет существующий файл с именем имя_файла без запроса на подтверждения.
/? - Отображение справки для команды reg export в командной строке.
Примечания
значения возврата для операции reg expor:.
Значение Описание
0 Успех
1 Сбой
Примеры:
Чтобы экспортировать все подразделы и записи раздела MyApp в файл AppBkUp.reg, введите:
reg export HKLM\Software\MyCo\MyApp AppBkUp.reg
D_Master
16-09-2008, 14:12
Medic84, полный экспорт реестра:regedit.exe -ea С:\reg.reg
Экспорт ветки:
regedit.exe -ea C:\reg.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services"
Тема переименована, чтобы не ограничивать варианты решения только CMD и не плодить "напишите мне" тем по каждому языку.
[hr]
Нет, ну надо же...
Я уже задавал где-то вопрос, но ответа пока нет: можно ли перенести расположение Documents and Settings с диска C на диск D с помощью bat-файла? Поскольку диск D я обычно форматирую после установки системы.
Отправлено: 19:09, 12-09-2008 »
А чего тут сложного? REG ADD /? для импорта параметра Personal в
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
MOVE /? для перемещения папки. Пишите батник.
Отправлено: 01:53, 14-09-2008»
Поскольку на мой вопрос от 12 июня никто пока не ответил, я в надежде на ответ удалил текст вопроса там и помещаю его вновь (в правилах форума запрета на это нет):
Возможен ли батник, изменяющий в Windows местоположение папок "Мои документы" для всех пользователей компа, с переносом, соответственно, содержимого этих папок?
Отправлено: 18:53, 15-09-2008 »
truvo предупреждение за кросс-постинг, ОПК 2.2
А чего тут сложного? »Легко задать такой вопрос чайнику. Тем не менее, никто включая вас на форуме пока не предложил более-менее конкретные варианты решения. Видимо, напротив - ничего простого. Тем более, что решение должно быть реализовано для многопользовательского режима, для всех пользователей сразу и быть универсальным для любой версии Windows.
Vadikan, Тема переименована »
должно быть WSH (Windows Script Host), а не WHS (Windows Home Server) :)
@echo off
Color 0A
set A1=E:\Backup
set A2=E:\Games\CallofDuty4\players\profiles
cls
echo =================================
echo Backup for Call of Duty 4
echo =================================
echo.
echo Вы хотите:
echo.
echo.
echo 1. Сделать Backup личных данных
echo.
echo 2. Восстановить личные данные
echo.
choice /c 12 /m "Сделайте ваш выбор: "
IF ERRORLEVEL 2 goto restore
IF ERRORLEVEL 1 goto backup
:backup
xcopy /E /I /H /Y %A2% %A1%
REG EXPORT "HKLM\Software\Activision\Call of Duty 4\codkey" %A1%\key.reg
pause
:restore
xcopy /E /I /H /Y %A1% %A2%
regedit /s %A1%\key.reg
pause
Выдает ошибку что команда choice не является внутренней или внешной программой и т.д. и т.п.
И после этого идет копирование, хотя копирование находится в метке, а раз команда choice не работает на нее перейти нельзя что не так??
Если можно проверте скрипт на ошибки...
Petya V4sechkin
18-09-2008, 14:42
Выдает ошибку что команда choice не является внутренней или внешной программой
Угу, не является.
Можно кусок:
choice /c 12 /m "Сделайте ваш выбор: "
IF ERRORLEVEL 2 goto restore
IF ERRORLEVEL 1 goto backup
заменить на:
Set /P Ch=Сделайте ваш выбор:
If "%Ch%"=="2" GoTo restore
If "%Ch%"=="1" GoTo backup
Exit /B
Экспорт ветки:
Код:
regedit.exe -ea C:\reg.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" »
Это экспорт ветки, а как сделать экспорт 1 значения из ветки???
Medic84
не так просто, как вариант:
@Echo Off
:: -- Ключ, параметр рееста и имя выходного файла
Set $RKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Set $PARM=DCacheUpdate
Set $FILE=%~dpn0.reg
:: -- Чтение типа параметра и значения в переменные
For /F "Tokens=2-3 Delims= " %%i In ('REG QUERY "%$RKEY%" /v "%$PARM%"') Do (
Set $TYPE=%%i
Set $RVAL=%%j)
)
:: -- Временные ключ реестра и имя файла
Set $RTMP=HKEY_CURRENT_USER\Software\~TMP
Set $FTMP=%~dpn0.tmp
:: -- Копируем параметр во временную ветку и экспоритуем ее в файл
REG DELETE %$RTMP% /f >Nul 2>&1
REG ADD %$RTMP% /v "%$PARM%" /t %$TYPE% /d "%$RVAL%" >Nul
REG EXPORT "%$RTMP%" "%$FTMP%" >Nul
REG DELETE %$RTMP% /f >Nul
IF EXIST "%$FILE%" DEL /F /Q "%$FILE%"
:: -- Замена в REG-файле имени ключа на нужный
CHCP 1251 >Nul
For /F "Delims=" %%i In ('Type %$FTMP%') Do (
IF "%%i"=="[%$RTMP%]" ( @Echo.[%$RKEY%] >>"%$FILE%"
) ELSE ( @Echo.%%i >>"%$FILE%" )
)
подскажите как удалить из вкладки "безопасность" на диске "D" группу "ВСЕ" и добавить "Опытные пользователи" со всеми правами ?
illznn, есть такая утилита cacls, для поставленных задач нужно запустить её дважды с такими параметрами
cacls.exe D:\ /E /R Everyone
cacls.exe D:\ /E /G "Power Users":F
про неё и её применения написано ещё в этой теме (http://forum.oszone.net/thread-41825.html).
Admiral, обыскался, не могу найти, где ее можно достать ?
illznn, в командной строке вводите команды.
Vadikan, В КС и ввожу, я думал эта утилита должна быть в корню с батником.
пишет "Именам пользователей не сопоставлены коды защиты данных."
что это может быть...
Petya V4sechkin
25-09-2008, 11:14
Именам пользователей не сопоставлены коды защиты данных.
На русской системе вместо Everyone - Все, а вместо "Power Users" - "Опытные пользователи".
Delirium
02-10-2008, 07:40
Модераторы, поправьте шапку, а то фраза
Певые шаги (русск.) как то не звучит :) То ли Левые шаги, то ли непонятно :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.