EXPAND Rozpakowuje skompresowane zbiory
z dyskietki
instalacyjnej
POSTAĆ: TYP:
ZEWNĘTRZNY
EXPAND
[dysk:]zbiór1 [[dysk:]zbiór2 [...]] przeznaczenie
ZNACZENIE: Rozpakowuje skompresowane zbiory z dyskietki instalacyjnej
dysk: lub z
innego miejsca, gdzie mogą być
przechowywane
oryginalne
zbiory dystrybucyjne. Można w ten sposób
odzyskać jeden
lub kilka, uszkodzonych lub zgubionych zbiorów.
Nie można użyć
zwykłej komendy COPY, gdyż zbiory te są
właśnie
przechowywane na dyskietkach dystrybucyjnych w postaci
spakowanej i ze
zmienionymi nazwami. Ostatnia litera w nazwie
rozszerzenia
zbioru, jest zamieniona na znak podkreślenia,
tzn. '_'. Na
przykład zbiór COMMAND.COM jest przechowywany
na pierwszej
dyskietce w postaci spakowanego zbioru
o nazwie:
COMMAND.CO_
Na jednej z
pierwszych dyskietek znajduje się zbiór o
nazwie
PACKING.LST, w
którym podane są zawartości wszystkich
dyskietek
dystrybucyjnych i właściwych nazw przechowywanych
tam zbiorów.
Komenda ta nie
jest wygodna w użyciu i jeśli wiele
zbiorów
(komend DOS-a)
uległo uszkodzeniu, to znacznie pewniej
i
prościej użyć
jest powtórnej instalacji
DOS-a, czyli
uruchomienie z
pierwszej dyskietki programu SETUP .
PRZYKŁADY:
EXPAND A:\COMMAND.CO_ C:\COMMAND.COM
Odzyskanie
komendy systemowej COMMAND.COM z dyskietki
dystrybucyjnej
A: na dysk C: do katalogu głównego.
EXPAND A:\DOSSHELL.CO_ C:\DOS\DOSSHELL.COM
EXPAND A:\DOSSHELL.EX_ C:\DOS\DOSSHELL.EXE
EXPAND A:\DOSSHELL.HL_ C:\DOS\DOSSHELL.HLP
EXPAND A:\DOSSHELL.VI_ C:\DOS\DOSSHELL.VID
EXPAND A:\DOSSHELL.IN_ C:\DOS\DOSSHELL.INI
EXPAND A:\DOSSHELL.GR_ C:\DOS\DOSSHELL.GRB
Odzyskanie
wszystkich zbiorów dotyczących programu 'DOSSHEL'
z dyskietki
dystrybucyjnej A: na dysk C: do katalogu
\DOS.
Niestety nie
można tu użyć znaków globalnych * i ?, i trze-
ba każdy zbiór
odtwarzać oddzielnie.
Aby to jednak
uprościć podaję poniżej makro do rozpakowania
wszystkich
zbiorów z dyskietek
dystrybucyjnych. Wystarczy
go uruchomić aby
wiedzieć jak go używać. Wykorzystuję w nim
komendę FOR,
która umożliwia wielokrotne wywołanie
jakiejś
komendy dla różnych zbiorów. Aby to wykonać
ręcznie użyj
zlecenia
(najpierw przechodząc na tą dyskietkę):
for %x in (*.??_) do c:\dos\expand %x c:\dos\%x
Mimo
to, niektóre zbiory mogą być nieprawidłowo
utworzone,
a dotyczy
to głównie programu
DOSSHELL, dla którego
modyfikowany jest zbiór
DOSSHELL.INI podczas wykonania
właściwego
programu SETUP. Zbiór ten jest zmieniany,
gdy
np. jest
monitor kolorowy zamiast
monochromatycznego.
Poniżej zamieszczone
jest to makro:
Zamiast
przepisywać poniższe, naciśnij F
-***-DOS-EXP.BAT-***-
@echo off
if .%1==. echo Wywołaj z dyskietki: DOS-EXP
dysk:[\katalog\]
if .%1==. echo na przykład: DOS-EXP C:\DOS\
if .%1==. echo UWAGA: potrzebny jest program EXPAND.EXE z
ostatniej dyskietki !
if .%1==. goto koniec
echo UWAGA: Wszystkie
zbiory na %1 zostaną skasowane !
echo Naciśnij
cokolwiek dla akceptacji lub przerwij
(Ctrl-C) ....
pause > nul
echo y | del %1*.* > nul
:EXPAND
cls
echo Włóż ostatnia dyskietkę i naciśnij cokolwiek lub przerwij
(Ctrl-C) ....
pause > nul
if not exist expand.exe goto EXPAND
copy expand.exe %1expand.exe
cls
echo.
echo Włóż pierwsza dyskietkę i naciśnij cokolwiek lub przerwij
(Ctrl-C) ....
pause > nul
:again
@echo on
for %%x in (*.??_) do c:\dos\expand %%x
%1%%x
@echo off
if exist *.com copy *.com %1*.com
if exist *.exe copy *.exe %1*.exe
if exist *.ini copy *.ini %1*.ini
if exist *.lst copy *.lst %1*.lst
if exist *.txt copy *.txt %1*.txt
if exist %1*.38_ ren %1*.38_ *.386
if exist %1*.ba_ ren %1*.ba_ *.bas
if exist %1*.co_ ren %1*.co_ *.com
if exist %1*.cp_ ren %1*.cp_ *.cpi
if exist %1*.ex_ ren %1*.ex_ *.exe
if exist %1*.gr_ ren %1*.gr_ *.grb
if exist %1*.hl_ ren %1*.hl_ *.hlp
if exist %1*.in_ ren %1*.in_ *.ini
if exist %1*.ls_ ren %1*.ls_ *.lst
if exist %1*.pr_ ren %1*.pr_ *.pro
if exist %1*.sy_ ren %1*.sy_ *.sys
if exist %1*.tx_ ren %1*.tx_ *.txt
if exist %1*.vi_ ren %1*.vi_ *.vid
if exist %1*.??_ del %1*.??_
echo.
echo.
echo Włóż następną dyskietkę i naciśnij cokolwiek lub przerwij
(Ctrl-C) ....
pause > nul
goto again
:koniec