Plik wsadowy ze zmieniającymi się literami dysku

1

Moim celem jest utworzenie pliku wsadowego, który rozpakuje zawartość pliku zip do osobnego katalogu. Każdy plik związany z tym pytaniem znajduje się na tym samym dysku flash.

Następujące polecenie działa dobrze z literą dysku i:\

**i:\7z x i:\zips\new_app.zip -oi:\apps\new_app**

Co się stanie, jeśli umieściłem dysk flash w innym komputerze, a litera dysku NIE i:\ ale f:\ lub g:\ lub q:\

Czy mogę stworzyć jakąś zmienną?

user216384
źródło

Odpowiedzi:

2

Zastąpić I:\ z %CD%. The %CD% zmienna środowiskowa zawiera bieżącą ścieżkę katalogu.

%CD%\7z x %CD%\zips\new_app.zip -o%CD%\apps\new_app

Po dwukrotnym kliknięciu pliku wsadowego rozpoczyna się on w katalogu, w którym się znajduje. Jeśli plik wsadowy znajduje się w katalogu głównym pamięci USB, %CD% zostanie ustawiony na I:\ lub jakakolwiek litera dysku zamontowana pamięć USB.

Rain
źródło
Idealny. Dla innych dodam, że nie potrzebowałem / po%
user216384
0

Jeśli uruchomisz plik .BAT z dysku USB, nie musisz podawać litery dysku, tylko ścieżkę i / lub plik względem pliku .BAT.

Przykład: Of Unzip.BAT znajduje się w katalogu głównym napędu USB, a plik .zip znajduje się w folderze o nazwie „sklasyfikowane dokumenty” w folderze o nazwie „tajne”.

\secret\classified docs\
Martin Toy
źródło
Nie mogę jednak uzyskać polecenia w wersji 7zip, aby to zaakceptować. Kiedy korzystam z opcji -o, chce po niej napisać literę dysku ..... chyba że zrobię to źle .... co może być prawdą.
user216384
Ach, to może być problematyczne. Nie wiem wystarczająco dużo o 7zip, aby móc wysuwać dalsze sugestie. Myślę, że Rain ma odpowiedź, ponieważ powinna działać.
Martin Toy
0

Ten projekt można wykorzystać w strukturze folderów:

"%cd:~0,2%\<full path>"
STTR
źródło