Myślę, że coś mi umknęło, ponieważ nie mogę znaleźć, co to oznacza.
Przykład:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Ta linia miała używać wersji wiersza poleceń 7zip
do kompresji pojedynczych folderów, ale jestem zaskoczony, co %%A
oznacza w tym kontekście.
command-line
batch
batch-file
7-zip
Jim Kieger
źródło
źródło
Odpowiedzi:
for
Komenda potrzebuje zastępczy, dzięki czemu można przejść zmienne do wykorzystania później w zapytaniu, mówimy to użyć zastępczy%A
, powód kod obejrzałeś zastosowań%%A
jest ponieważ wewnątrz pliku wsadowego (które zakładam, że jest gdzie znalazłeś tego)%
ma specjalne znaczenie, więc musisz to zrobić dwa razy, aby zmienić je%%
w jedno,%
które zostanie przekazane dofor
poleceniaAby faktycznie rozdzielić to, co robi polecenie, polecenie składa się z dwóch części:
Ta część mówi, że dla każdego folderu w bieżącym folderze wykonaj następujące polecenie, zastępując
%%A
nazwę folderu aktualnie przetwarzanego.To, co mówi ta część, to wykonanie polecenia
"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
i zastąpienie ich dwoma%%A
bieżącym rekordem, który przetwarzamy.źródło
To jest zmienna.
W tym konkretnym przykładzie użyto opcji katalogowej pętli FOR , iterującej po katalogach i przypisującej je do %% A.
To także nie jest przykład z wiersza poleceń, ale przykład pliku wsadowego. W plikach wsadowych musisz użyć %% A, podczas gdy w wierszu poleceń wystarczy użyć% A.
źródło
W twoim scenariuszu %% A jest symbolem zastępczym dla tego, co iteruje pętla „for” (w którym / D wskazuje katalogi). Tak więc każda iteracja pętli, %% A jest jednym z katalogów.
Zobaczysz %% zamiast% w kodzie partii. W wierszu polecenia zobaczysz% zamiast %%.
Więc wiedz, że jeśli skopiujesz kod pliku wsadowego do wiersza polecenia i uruchomisz go przy użyciu %%, wystąpi błąd i vice versa.
źródło