複合コマンドのDoskey


32

Doskeyは、Windowsの最新バージョンで、単一のコマンドのエイリアスを設定するために機能しますdoskey foo=bar

doskey foo=bar & bazこれがとして解釈されるため、複合コマンドに使用しようとするわずかな問題があります(doskey foo=bar) & baz。明らかな解決策は、明示的な括弧を追加することですdoskey foo=(bar & baz)が、何らかの理由でこれは機能せず、機能しdoskey foo="bar & baz"ません。

これを行う方法はありますか?

回答:



19

$Tコマンドを区切るために使用します。

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

からdoskey /?

$ Tコマンド区切り文字。マクロ内の複数のコマンドを許可します。

7

(ある程度)デニスウィリアムソンの答えに追加するには、コマンドをパイプするためにパイプ文字をエスケープすることもできます!たとえば、クリップボードにデータをコピーするコマンドが必要でした。COPYそれを解釈する方法のために、改行を付けずに指定したテキストを実際にコピーするには、間抜けなコマンドを実行する必要があります。

クリップボードにコピーするためのマクロを定義するには、次のコマンドでパイプをエスケープできます^

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

コマンドを実行するとcc hey、あなたが今持っているでしょうheyクリップボードにコピーされました!


また、改行文字のコピーを防ぐ方法についても疑問に思っていました!ありがとう。
アレックス

7

以前の回答に追加するには、これを行うこともできます:

mybatfile.cmd

    doskey /macrofile=aliases.txt

aliases.txt

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

マクロファイルでは、パイプ/アンパサンドをエスケープする必要はなく、1回の呼び出しで複数のエイリアスを定義できることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.