Kiedyś pracowałem nad bash i korzystałem z aliasu. Czy istnieje jakiś równoważny sposób w wierszu poleceń systemu Windows?
Nie chcę symulować środowiska Linux, więc cygwin nie jest wyborem. Potrzebuję tylko skrótu do bardzo długiego polecenia, na przykład cd a_very_long_path
.
windows
command-line
StarPinkER
źródło
źródło
doskey
(nie daj się zwieść nazwie, to nie jest stary doskey MS DOS). Użyj,doskey /?
aby uzyskać więcej informacji. Poza tym, obawiam się, że to pytanie jest poza tematem tutaj.Odpowiedzi:
Jak powiedział Christian.K w swoim komentarzu, polecenia DOSKEY można użyć do zdefiniowania makr, które są analogiczne do aliasów.
Makroparametry są przywoływane w definicji za pomocą
$
prefiksowanych pozycji:$1
przez$9
i$*
dla wszystkich.Aby uzyskać więcej informacji, zobacz dokumentację doskey technet lub wpisz
doskey /?
lubhelp doskey
z wiersza polecenia.Istnieją jednak poważne ograniczenia dotyczące makr DOSKEY:
someMacro|findstr '^'
idir|someMacro
zawodzą.for /f %A in ('someMacro') do ...
kończy się niepowodzeniemOgraniczenia są tak poważne, że rzadko używam makr DOSKEY.
Oczywiście zamiast makr można tworzyć skrypty wsadowe i upewnić się, że lokalizacje skryptów znajdują się w ŚCIEŻCE. Ale następnie musisz poprzedzić każdy skrypt CALL, jeśli chcesz użyć skryptu w innym skrypcie.
Możesz tworzyć proste „makra” zmiennych dla długich i często używanych poleceń, ale składnia jest nieco trudna do wpisania, ponieważ musisz rozwinąć „makro”, gdy chcesz go użyć.
Definicja:
Użycie (z wiersza poleceń lub skryptu)
źródło
Możesz utworzyć skrypt wsadowy i zapisać go na swojej ścieżce.
W systemie Linux utworzysz skrypt i dodasz go do folderu w systemie
~/bin
Windows, możesz zrobić to samo.Dodaj
%USERPROFILE%\bin
doPATH
zmiennej środowiskowej. Następnie zapisz tam swoje skrypty.quickcd.cmd
Teraz możesz pisać
quickcd
w wierszu polecenia.Można go również wywołać w skrypcie za pomocą
call
funkcjiźródło
Microsoft Windows [Version 10.0.17134.648]
/d
flagę doCD
subst
Jeśli naprawdę próbujesz obejść coś takiego:
Możesz użyć
subst
polecenia, aby zamapować tę długą ścieżkę na osobną literę dyskuNastępnie, jeśli chcesz przejść do tego folderu, możesz po prostu wpisać
m:
w wierszu polecenia.Zaletą tego
doskey
jest to, że działa we wszystkich programach wsadowych i pojawia się w dowolnym oknie dialogowym pliku w systemie Windows.Jeśli nie chcesz już mapowania:
źródło
Możesz użyć tej samej sztuczki, której używa system Windows: ustaw zmienną środowiskową (lub po prostu zmienną w kontekście wsadowym), na przykład istnieje zmienna środowiskowa% windir% (i kilka innych), więc możesz zrobić
lub
który robi to samo. Wszystko, co musisz zrobić, to:
potem możesz zrobić (gdziekolwiek jesteś):
lub
lub cokolwiek chcesz.
źródło
W przeciwieństwie do Linuksa, w systemie Windows aliasy mogą przyjmować argumenty i mogą mieć parametry umożliwiające przypisanie tych argumentów w ich definicji.
Wewnętrzne wbudowane polecenie to doskey , co oznacza, że nie jest to zewnętrzny plik wykonywalny umieszczony w nim,
%SystemRoot%\System32
ale jego funkcjacmd.exe
jest domyślnie umieszczona w folderze%SystemRoot%
lub w%Windir%
obuC:\Windows
przypadkach.Doskey definiuje aliasy wśród wielu innych rzeczy. W terminologii Windows aliasy nazywane są makrami. Aby ustawić używany alias
Tutaj
$1
wskazuje na pierwszy argument i$*
wskazuje na wszystkie argumenty.Zawsze używałbym
$*
podwójnego cudzysłowu,$1
jeśli jest tylko jeden argument do pominięcia spacji, które są traktowane jako znaki specjalne, a mianowicie jako separatory (dla poleceń).Co więcej, możesz zdefiniować makra
aliasóww osobnym pliku, powiedz,LinuxAliases.macro
a następnie użyj źródłaZaładuje wszystkie aliasy zdefiniowane w pliku tylko dla bieżącej sesji , co oznacza, że kiedy jesteś
exit
pozacmd.exe
procesem (znany również jako powłoka i wiersz polecenia), znikają.Aby mieć stałe aliasy, możesz wpisać pełne polecenie gdzieś w kluczu regedit o nazwie AutoRun lub AutoCommand lub coś podobnego, czego nie mogę sobie teraz przypomnieć obok wewnętrznej składni pliku makra: P
Oto oficjalne i jeszcze lepsze dokumentacje dla polecenia.
źródło
Zrobiłem taki „alias” specjalnie do zmiany katalogu. Zasadniczo utworzyłem plik o nazwie
fav.bat
i umieściłem go w folderze PATH (np. C: \ MyBatches):Następnie mogę bardzo szybko przejść do dowolnego predefiniowanego folderu. Tutaj napisałem pełny artykuł o tej technice .
źródło
zakładając, że pozostajesz na tym samym dysku, tzn. nie jest
D:
to wtedycd D:\somedir\
potrzebne.W moim przypadku C: przechowuje pliki systemowe, ale cała praca jest na D:
2 części najpierw ustaw niektóre działające katalogi, używając pliku wsadowego.
powiedzmy localprofile.cmd . Możesz mieć wiele z nich, po prostu uruchom je w razie potrzeby.
teraz użyj innego pliku poleceń, aby się poruszać, w oparciu o właśnie ustawione zmienne środowiskowe.
wd.cmd
I trochę przykładowego użycia:
wd sam powinien pokazać mi listę zakładek dodanych do zakładek. Działa, ale nie jestem pewien, dlaczego otrzymuję ten komunikat „nieoczekiwany cd”.
Regularne partie .cmd
Oprócz nawigacji w katalogu, możesz utworzyć plik foo.cmd gdzieś na ŚCIEŻCE i może on działać jak alias. Pamiętaj, że w przeciwieństwie do powłok Linux / OSX, pliki cmd mogą wpływać na zmienne środowiskowe i sesję bez konieczności ich pozyskiwania .
Mam cdbin.cmd do nawigacji, na przykład:
A to pseudo-grep grep.cmd
w akcji (cokolwiek sortuje / + 2 / + 10 oznacza)
D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10
źródło
Możesz użyć doskey.exe , oto przykład:
A teraz, jeśli wpiszesz
qcd
, będzie cd do tej ścieżki.Oto pomoc dotycząca makr doskey :
To najprostsza forma, oto przykład:
a jeśli wpiszesz
word
wynik to:Możesz użyć 1-9 USD za parametry, oto przykład:
a jeśli wpiszesz
npd
, otworzy notatnik, ale jeślinpd test.txt
go wpiszesz , otworzy test.txt w notatniku .Możesz użyć $ * dla wszystkich parametrów, oto inny przykład:
a jeśli wpiszesz,
prt This is short.
wynik będzie:Możesz użyć $ T do wielu poleceń, oto przykład:
a jeśli wpiszesz,
newline Hello and
wynik będzie:Mam nadzieję że rozumiesz.
źródło