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

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

Ответить
Настройки темы
CMD/BAT - Из-за чего появляется проблема доступа и как лечится?

Аватара для Nun-Nun

Ветеран


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


Конфигурация

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


При работе скрипта при выполнении команд CD, DEL и т.п. выскакивает сообщение, что нет доступа к файлу/папке (а может к диску) из-за его возможного использования другим процессом. В чём причина и как лечить? Может это связано с использованием в скрипте команды SetLocal EnableExtensions?

Отправлено: 20:38, 16-05-2009

 

(*.*)


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

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


Nun-Nun, наверное, нужно привести скрипт, способ его запуска, указать ОС, свои права, расклад по дискам...

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 12:00, 17-05-2009 | #2



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

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


Аватара для Nun-Nun

Ветеран


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

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


Vadikan, запуск из cmd-файла (папка не имеет значения); ОС - XP SP3 (со всеми обновами) NTFS; права - админ.; диски: C: , D: , E: , F: , G: - все SCSI HDD, не разбитые на логические диски; H: , I: - DVD-шники; J: - виртуальный диск UltraISO.
Некоторые пояснения относительно скрипта: скрипт сделан для автоматизации процесса распаковки обновлений и их интеграции в дистрибутив MS Office 2003. Сейчас скрипт работает, но для первоначального размещения дистрибутива пришлось отказаться от использования временной папки C:\XPCD\$OEM$\$1\install\Applications\Office2003 и сразу копировать его с DVD-шника в конечную папку C:\Temp\New_Distrib, т.к. по названной в первом посте причине ни переименовать, ни удалить временную папку, ни перенести из неё обновлённый дистрибутив в конечную (целевую) папку C:\Temp\New_Distrib при использовании в конце скрипта команд CD, DEL и MOVE не удавалось.
Прошу не судить слишком строго, поскольку это мой первый опыт по созданию такого рода скрипта. И буду весьма признателен, если укажете в нём ещё какие-то недостатки.

P.S. Я знаю, что для моей цели на форуме уже есть готовый интегратор, но мне хотелось самостоятельно реализовать идею такого процесса в том виде, как я это понимаю. Тут хоть какой-то небольшой, но всё-таки мой собственный опыт.

Код: Выделить весь код
TITLE Обновление дистрибутива MS Office 2003
CLS
@echo off
COLOR 1B

SetLocal EnableExtensions
SET SystemTemp=C:\Temp
SET FileTemp1="C:\Temp\Microsoft Office 2003 Setup(0001).txt"
SET FileTemp2="C:\Temp\Microsoft Office 2003 Setup(0002).txt"
SET FileTemp3="C:\Temp\Microsoft Office 2003 Setup(0001)_Task(0001).txt"
SET FileTemp4="C:\Temp\Microsoft Office 2003 Setup(0001)_Task(0002).txt"
SET OfficeTemp1=01_Office2003SP3-KB923618-FullFile-RUS-MAINSP3.msp
SET OfficeTemp2=01_Office2003SP3-KB923618-FullFile-RUS-OWC11SP3.msp
SET NamePath=C:\Temp\O2003updates
SET NamePathTemp=C:\Temp\O2003updates\Temp
SET Spisok1=%NamePathTemp%\Spisok1.txt
SET Spisok2=%NamePathTemp%\Spisok2.txt
SET LabelCD=Office11
REM SET DistrTemp=C:\XPCD\$OEM$\$1\install\Applications\Office2003
SET NewDistrib=C:\Temp\New_Distrib
SET ExceptionFile1=Office2003SP3-KB923618-FullFile-RUS.exe
REM SET ExceptionFile2=Ork.exe

ECHO.
ECHO Запущен процесс извлечения файлов из SP3 для MS Office 2003...
ECHO.
MD %NamePathTemp%
DIR /b Office2003SP3-KB923618-FullFile-RUS.exe >"%NamePathTemp%\Spisok1.txt"
FOR /F "Delims=" %%A In (%Spisok1%) DO (
	MD %NamePathTemp%\%%~nA
	%%A /Q /C /T:C:\Temp\O2003updates\Temp\%%~nA
	REN %NamePathTemp%\%%~nA\MAINSP3.msp 01_Office2003SP3-KB923618-FullFile-RUS-MAINSP3.msp
	REN %NamePathTemp%\%%~nA\OWC11SP3.msp 01_Office2003SP3-KB923618-FullFile-RUS-OWC11SP3.msp
	DEL %NamePathTemp%\%%~nA\OWC102003SP3.msp
	MOVE %NamePathTemp%\%%~nA\*.msp %NamePath%
	RD /S /Q %NamePathTemp%\%%~nA
	DEL %NamePathTemp%\Spisok1.txt
)
ECHO.
ECHO Извлечение файлов из SP3 выполнено успешно!
ECHO.
ECHO Извлекаются файлы из других файлов-обновлений для MS Office 2003....
ECHO.
Dir /b *.exe >"%Spisok2%"
For /F "Delims=" %%I In (%Spisok2%) Do (
	If /I Not %%I==%ExceptionFile1% (
		If /I Not %%I==%ExceptionFile2% (
			MD %NamePathTemp%\%%~nI
			%%I /Q /C /T:C:\Temp\O2003updates\Temp\%%~nI
			REN %NamePathTemp%\%%~nI\*.msp %%~nI.msp
			MOVE %NamePathTemp%\%%~nI\*.msp %NamePath%
			RD /S /Q %NamePathTemp%
		)
	)
)

ECHO.
ECHO Извлечение файлов выполнено успешно!
ECHO.
ECHO Идёт поиск дистрибутива MS Office 2003...
ECHO.
wmic /? 1>nul
FOR /F "tokens=2* delims==" %%k in ('wmic path Win32_LogicalDisk where VolumeName^=^"%LabelCD%^" get name /value') DO (
	ECHO Дистрибутив MS Office 2003 найден, файлы копируются на жёсткий диск...
	CD /d %%k&Setup.exe /a /qb MSINODISABLEMEDIA=1 COMPANYNAME="" INSTALLLOCATION=%NewDistrib% PIDKEY=XXXXXXXXXXXXXXXXXXXXXXXXX
	ECHO.
	ECHO Дистрибутив успешно скопирован!
	GOTO :NEXT
)
IF NOT EXIST %LabelCD% GOTO :END
ECHO.
:NEXT
ECHO.
ECHO Выполняется интеграция SP3 в дистрибутив MS Office 2003...
ECHO.
msiexec /p %NamePath%\01_Office2003SP3-KB923618-FullFile-RUS-MAINSP3.msp /a %NewDistrib%\STD11.msi SHORTFILENAMES=TRUE /qb
msiexec /p %NamePath%\01_Office2003SP3-KB923618-FullFile-RUS-OWC11SP3.msp /a %NewDistrib%\OWC11.MSI SHORTFILENAMES=TRUE /qb
DEL %NamePath%\%OfficeTemp1% %NamePath%\%OfficeTemp2%
ECHO SP3 интегрирован, выполяется интеграция других файлов-обновлений...
ECHO.
FOR %%f IN (%NamePath%\*.msp) DO msiexec /p %%f /a %NewDistrib%\Std11.msi SHORTFILENAMES=TRUE /qb
RD /S /Q %NamePath%
DEL %FileTemp1% %FileTemp2% %FileTemp3% %FileTemp4%
ECHO Интеграция SP3 и других файлов-обновлений выполнена успешно!
ECHO.
ECHO Обновлённый дистрибутив MS Office 2003 находится в папке C:\Temp\New_Distrib
ECHO.
pause
EXIT
ECHO.
:END
ECHO Дистрибутив MS Office 2003 не найден!
ECHO Вставьте диск с дистрибутивом в дисковод и запустите процесс снова!
ECHO.
pause
EXIT

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 19-05-2009 в 21:37.


Отправлено: 14:06, 19-05-2009 | #3


Аватара для Nun-Nun

Ветеран


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

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


Так лечится или нет? И если да, то как?

-------
Свобода не означает вседозволенность.


Отправлено: 22:36, 22-05-2009 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
всегда появляется табличка "Подключение удаленного доступа" DimonV Microsoft Windows Vista 5 24-02-2009 20:52
как узнать из за чего завис windoz xp ? в журнале ни чего нет. fancytux Хочу все знать 15 24-01-2009 22:15
Не появляется окно Удаленного доступа Mashuto Microsoft Windows 95/98/Me (архив) 4 21-07-2004 16:56
Лечится ли зависание С-35? Guest Мобильные ОС, смартфоны и планшеты 1 08-12-2003 19:54




 
Переход