Войти

Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов


Страниц : 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

amel27
15-02-2006, 03:54
MC_Dimka

Должно работать, может пароль неверный?.. ;)

MC_Dimka
15-02-2006, 16:50
amel27
я его вобще не могу запустиь..:(

Vadikan
16-02-2006, 05:09
amel27
Спасибо, я попробую на досуге. Хотя, вы уже наверное попробовали самостоятельно :) Рег файлы не редактировать не получится. Т.е. даже если и есть решение, то оно будет сложнее чем два файла. Если б INF был, то там можно было бы наверное пытаться что-то накрутить. Но опять же, если есть HKCU файл, то из него сделать еще один для HKU\custom - дело пары секунд.

amel27
16-02-2006, 07:00
MC_Dimka

Какая ошибка? Возможны варианты: например не установлен WSH 5.6 (http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa) (что маловероятно), или намудрили с безопасностью и выполнение скриптов заблокировано. Попробуйте простой vbs-скрипт запустить через wscript/cscript:
WScript.Echo "Hello"

MC_Dimka
16-02-2006, 14:19
amel27
=.vbs(1, 1) Microsoft VBScript runtime error: ActiveX component can'
t create object: 'ScriptPW.Password'

amel27
16-02-2006, 17:25
Понятно, COM-объект не найден. Точно такая же ошибка будет на Win2K т.к. там его и нету... Где-то перетвикали, XP случаем не через nLite ставили? Попробуйте найти одноименный scriptpw.dll и перерегистрировать.

MC_Dimka
16-02-2006, 19:04
amel27
XP случаем не через nLite ставили?
Случаем....:)
scriptpw.dll и перерегистрировать
перерегистрировал..:))
Все работает СПАСИБО!!,

Zauber
17-05-2006, 19:57
Уважаемые форумчане!
Хочу обсудить создание BAT файла, помогающего в установке системы под NTFS.
Цель: создать BAT файл, который бы по возможности максимально полно очищал системные папки перед повторной установкой системы. В конечном итоге BAT должен удалять всё что только можно удалить в папках Documents and Settings\, Program Files\, WINDOWS\. Причём необходимо учесть скромные возможности "Консоли восстановления". Никаких вспомогательных программ или методов использоваться не должно.
Проблемы: всем кто сталкивался с NTFS известно, что для более/менее полноценной работы с диском нужна либо ОС, либо "Консоль восстановления", либо утилиты наподобае NTSFDOS Pro.
Т.к. цель не использовать доп. утилиты (ограничиться максимум установочным CD диском Windows), то можно:
1. Зайти в "Консоль восстановления" с правами админа;
2. Запусить пакетный файл с командами:
SET AllowAllPaths = TRUE
SET AllowWildCards = TRUE
SET AllowRemovableMedia = TRUE
и циклом автоматической обработки папок.
Вам известно, что команда RD не удаляет папку если в ней есть файлы, команда DELETE не удаляет файлы к которым нет прав доступа. Это тоже нужно учесть в цикле обработки, иначе всё застопорится при этих ситуациях.
Помогите pls написать соответствующий BAT файл.

Anton04
19-06-2007, 10:52
Vadikan

Прокомментируй пожалуйста свой скрипт?

Вот это:

@echo off
:: Get the profiles directory from the registry
for /f "usebackq tokens=3,3* delims== " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i
:: Set the profiles dir as %profiles%
for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i

всё понятно, создаётся переменная соответствующая %SYSTEMDRIVE%\Documents and Settings (короче папке где лежат все профили).

а дальше ну одни вопросы...

for /f "usebackq tokens=1,1* delims==" %%i in (`dir /b "%profiles%"`) do (
if /i "%%i" neq "All Users" (

я так понял что исключается папка All Users в профильской директории. Да!?

reg load HKU\custom "%profiles%\%%i\NTUSER.DAT"

Непонятно зачем загружается/копируется, в реестр да и к тому же в ветку "custom", всё что есть в HKU данного пользователя!?

regedit /s tweak.reg

Ну это то применяется собственно твик, а где он должен тогда лежать?

reg unload HKU\custom

Хм... ну это выгружается ветка реестра "custom", но не понятно зачем она вообще нужна!?

P.S. За ранее блогадарен за любые комментарии.
P.S.S. Собственно, если ещё кто может прокомментировать этот скрипт милости прошу... ;-)

Vadikan
19-06-2007, 23:20
Anton04я так понял что исключается папка All Users в профильской директории. Да!?Да. Непонятно зачем загружается/копируется, в реестр да и к тому же в ветку "custom", всё что есть в HKU данного пользователя!?Чтобы выполнить импорт параметров реестра в этот раздел. При этом нбх учитывать, что если задумывется импорт в HKEY_CURRENT_USER\Control Panel\Desktop, в файле твиков путь должен быть HKU\Custom\Control Panel\Desktop Ну это то применяется собственно твик, а где он должен тогда лежать?Где угодно. В данном случае он лежит в одной папке с пакетным файлом.Хм... ну это выгружается ветка реестра "custom", но не понятно зачем она вообще нужна!?См. выше.

Anton04
21-06-2007, 13:06
Vadikan

Чё то я совсем туплю... :swoon:

Значит у нас получаеься так: копируется вся ветвь реестра HKU (текущего пользователя) в HKU\Custom - да?
Потом применяется файл реестра (в виде файла tweak.reg) с нужными мне настройками (ну например там прописаны настройки HKU\Custom\Control Panel\Desktop).
Так и имеем мы значит ветку реестра HKU\custom где содержится вся ветка реестра HKU (от текущего пользователя)+применённый (по верх) трик. :blink:

А как у нас тогда осуществляется обратный процесс? для нового пользователя? как подзагрузить нужные нам настройки? Этот скрип же не рассматривает этот вопрос... :help:

Vadikan
21-06-2007, 20:41
Anton04
А как у нас тогда осуществляется обратный процесс?Что значит обратный процесс? После импорта твиков ветка выгружается.для нового пользователя? как подзагрузить нужные нам настройки? Профиль нового пользователя создается на основе профиля Default User, который в свою очередь обрабатывается скриптом точно так же, как и все остальные профили в папке "ProfilesDirectory"

amel27
22-06-2007, 07:15
Anton04

- HKU и HKCU это разные ветки;
- наводящий вопрос: как применить твик ко всем пользователям компьютера (ветка HKCU)?

Vadikan
22-06-2007, 09:06
amel27
Благодар за комментарий. Я не заметил, что Anton04 путает эти два раздела(ну например там прописаны настройки HKU\Custom\Control Panel\Desktop).
Так и имеем мы значит ветку реестра HKU\custom где содержится вся ветка реестра HKU (от текущего пользователя)

Anton04
Думаю, что вам не повредит прочтение статьи Твики реестра (http://oszone.net/2779) и Описание реестра Microsoft Windows (http://support.microsoft.com/kb/256986/ru) заодно прочтите.

Anton04
22-06-2007, 10:30
amel27

Блин... точняк спутал, признаю, запарился совсем, каюсь :sorry: :blush2:

Vadikan

Спасибо за наставления. :patsak:

Дальше разберусь сам...

namesash
10-07-2007, 11:52
Подскажите пожайлуста можно ли в батнике указать выбор даты, чтобы юзер подставлял дату...что-то типа диалогового окна и команда выполнялась с учётом выбранной даты?.....команда такого вида: c:\pcmaster\drv32\tfrema /Manual /File=C:\transact.qdx /ExtractFolder=c:\store\transferxml\imp /BusinessDate=20070323..........где 20070323 соответственно и есть дата.

amel27
11-07-2007, 10:07
если без всяких преобразований, то присвоить значение переменной:@echo off
SET /P DATE="Введите дату (ГГГГММДД): "

ECHO %DATE%

V0van3
18-09-2007, 02:29
0bject
вот пример скрипта который пробегает по включённым машинам домена и раскидывает/удаляет файлы (можно делать и другие действия)


@rem Скрипт определяет все компьютеры сети и позволяет переписать/удалить файл на всех машинах в 1 месте
@rem Copywrite by Vovan[CAD]

@rem файл который нужно разбросать по машинам (с полным путём)
set sourcefile=o:\PDFFactory\GdiPlus.dll
@rem локальный путь на машинах куда надо положить файл (на конце должен быть \)
set DestinationPath=c$\progra~1\skype\
@rem удаляем старый лог если есть
if exist result.txt del result.txt

@rem Записываем список машин в сети в файл
set listfile=hosts.txt
net view /domain:test > %listfile%

@rem переменной %%i поочерёдно присваевается значение первого токена в каждой строке файла
for /f "tokens=1" %%i in (%listfile%) do call :procedure %%i

@rem procedure выполняется на каждой машине из списка
:procedure
@rem дописываем в лог имя машины
@echo %1 >>result.txt
if exist %1\%DestinationPath% pause
rem copy %sourcefile% %1\%DestinationPath% >>result.txt
rem del %1\%DestinationPath%\test.txt
exit /b


а вот мой вариант удаления только вложенных подпапок (удалить всю папку нельзя - нужно чтобы права на общую папку не полетели)
а учитывая что
del /Q/S/F %destination%\*.*
не задевает подпапки


@rem удаляет все подпапки с содержимым в заданной папке; файлы лежащие непосредственно в этой папке остаются
@rem copywrive by Vovan[CAD]

@rem параметр - полный путь к обрабатываемой папке без слэша вконце
@rem проверка что параметр задан
if %1*==* goto NOPARAM

set listfile=Spisok.txt
set workdisk=%~d1
set workdir=%1
set curpath=%~dp0
set curdisk=%~d0
@rem переходим в рабочую папку
%workdisk%
cd %workdir%
@rem записывает имена подпапок содержащихся в папке в файл %listfile%
@rem параметры по умолчанию для dir задаются в переменной DIRCMD
dir /b /a:d /o:ge >%listfile%
@rem для каждой папки из списка вызываем функцию её удаления с содержимым
for /f "tokens=*" %%i in (%listfile%) do call :deldir "%~1\%%i"
@rem удаляем файл-список
del %listfile%
@rem возвращаемся в текущую папку
%curdisk%
cd %curdir%
goto end

@rem функция удаляющая папку с вложенными файлами и подпапками
:DELDIR
if exist %1 del /Q/S/F %1
if exist %1 rmdir /Q /S %1
exit /b

@rem запуск без параметров
:NOPARAM
@echo off
cls
echo Параметры командной строки:
echo %0 полный путь к обрабатываемой папке без слэша вконце в двойных кавычках!
pause
goto end
:END


может кому-то пригодятся

Lihonosov
10-10-2007, 12:56
Нужно написать батник, который брал бы все файлы с определенным расширением и переименовывал бы их (новое имя файла должно быть датой и временем его создания).

DJ Mogarych
10-10-2007, 15:11
А батник-то зачем? Это нужно делать регулярно, по расписанию?
Может быть, Renamer (http://www.den4b.com/downloads.php?project=ReNamer) подойдёт?




© OSzone.net 2001-2012