Doskey per comando composto


32

Doskey funziona nelle versioni moderne di Windows per l'impostazione di alias per singoli comandi, ad es doskey foo=bar.

C'è un leggero problema nel cercare di usarlo per comandi composti come doskey foo=bar & bazpoiché questo viene interpretato come (doskey foo=bar) & baz. La soluzione ovvia sarebbe quella di aggiungere parentesi esplicite, doskey foo=(bar & baz)ma per qualche motivo questo non funziona e doskey foo="bar & baz"non funziona neanche.

C'è un modo per farlo?

Risposte:



19

Utilizzare $Tper separare i comandi:

doskey foo = bar $ T baz
doskey cpdel = copia $ 1 $ 2 $ T del $ 1

da doskey /?:

$ T Separatore di comandi. Consente più comandi in una macro.

7

Per (in qualche modo) aggiungere alla risposta di Dennis Williamson , puoi anche sfuggire al personaggio della pipa per inoltrare i comandi! Ad esempio, volevo un comando che copia roba negli appunti. A causa del modo in cui COPYlo interpreterà, è necessario eseguire un comando dall'aspetto sciocco per copiare effettivamente il testo specificato senza che sia seguito da una nuova riga.

Per definire una macro per la copia negli Appunti, è possibile uscire dalla pipe con ^:

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

Dopo l'esecuzione del comando cc hey, ora avrai heycopiato negli appunti!


Mi chiedevo anche come impedire la copia del personaggio newline! Grazie.
Alex Vallejo,

7

per aggiungere alle risposte precedenti, puoi anche fare questo:

mybatfile.cmd

    doskey /macrofile=aliases.txt

aliases.txt

    foo = bar & baz
    cpdel = copia $ 1 $ 2 $ T del $ 1
    cc = echo | set / p = $ * | clip

si noti che nel macrofilo non è necessario uscire dalla pipe / e commerciale ed è possibile definire più alias in una chiamata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.