Doskey dla polecenia złożonego


32

Doskey działa w nowoczesnych wersjach systemu Windows do ustawiania aliasów dla pojedynczych poleceń, np doskey foo=bar.

Występuje niewielki problem z próbą użycia go do komend złożonych, takich jak doskey foo=bar & bazinterpretacja tego jako (doskey foo=bar) & baz. Oczywistą poprawką byłoby dodanie jawnych nawiasów, doskey foo=(bar & baz)ale z jakiegoś powodu to nie działa i doskey foo="bar & baz"też nie działa.

Czy jest na to jakiś sposób?

Odpowiedzi:



19

Użyj $Tdo oddzielenia poleceń:

doskey foo = pasek $ T baz
doskey cpdel = skopiuj 1 $ 2 $ T del $ 1

z doskey /?:

$ T Separator poleceń. Umożliwia wiele poleceń w makrze.

7

Aby (nieco) dodać do odpowiedzi Dennisa Williamsona , możesz także uciec od znaku potoku, aby wydać polecenie! Na przykład chciałem polecenia, które kopiuje rzeczy do schowka. Ze względu na sposób, w jaki COPYto zinterpretuje, musisz wykonać głupkowato wyglądające polecenie , aby faktycznie skopiować określony tekst bez poprzedzania go nową linią.

Aby zdefiniować makro do kopiowania do schowka, możesz uciec z potoku za pomocą ^:

doskey cc=echo^|set /p=$*^|clip

Po wykonaniu polecenia cc hey, będzie teraz zostały heyskopiowane do schowka!


Zastanawiałem się także, jak zapobiec kopiowaniu znaku nowej linii! Dzięki.
Alex Vallejo

7

aby dodać do poprzednich odpowiedzi, możesz również to zrobić:

mybatfile.cmd

    doskey /macrofile=aliases.txt

aliases.txt

    foo = bar i baz
    cpdel = skopiuj 1 $ 2 $ T del $ 1
    cc = echo | set / p = $ * | klip

zwróć uwagę, że w makrofile nie ma potrzeby ucieczki potoku / ampersand i możesz zdefiniować wiele aliasów w jednym wywołaniu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.