web-dev-qa-db-ja.com

Windowsコマンドで永続的なDOSKEYを作成する

タイトルはかなり自明だと思います。

問題は、Windows cmdでエイリアスを作成し、それを閉じてから再度開いたときに機能するようにする方法です。たとえば、ipというエイリアスを使用してコマンドipconfigを呼び出すか、エイリアスls -lを呼び出してDirを呼び出します。

私のオペレーティングシステムはWindows 10です。

16
nick zoum

マクロ定義ファイル を作成します。たとえば、notepad;自由に名前を付けて任意の場所に保存します(たとえば、次の例では、macros.doskeyフォルダーのファイル名d:\bat\を使用しました)。
または、doskey /macros>d:\bat\macros.doskeyコマンドは、現在のすべてのマクロ定義d:\bat\macros.doskeyファイルにリストします。
サンプルのマクロ定義ファイルは次のようになります(==>Prompt $Q$Q$G$S command で指定された私のコマンドプロンプトです):

==> type d:\bat\macros.doskey
ls=dir /B $1 
ip=ipconfig $*

それから、次のコマンドが仕事をするはずです:

==> reg add "HKCU\Software\Microsoft\Command Processor" /v Autorun /d "doskey /macrofile=\"d:\bat\macros.doskey\"" /f
The operation completed successfully.

==> reg query "HKCU\Software\Microsoft\Command Processor" /v Autorun

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
    Autorun    REG_SZ    doskey /macrofile="d:\bat\macros.doskey"

説明については、cmd /?をご覧ください。

コマンドラインで/Dが指定されていない場合、CMD.EXEが起動すると、次のREG_SZ/REG_EXPAND_SZレジストリ変数が検索されます。一方または両方が存在する場合は、最初に実行されます。

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

および/または

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

免責事項:一部のAutoRun設定は、見落とされがちな不要な動作で発生する可能性があります。 非表示の問題:コマンドプロセッサの自動実行設定 で説明されているとおり

読み取り マクロ定義の保存と復元 ;有効なmacros.cmdスクリプトファイルを1つのステップで準備できます。

==> >macros.cmd (@for /F "delims=" %G in ('doskey /macros') do @echo DOSKEY %G)

==> type macros.cmd
DOSKEY ip=ipconfig $*
DOSKEY ls=dir /B $1

==>

バッチファイルからDoskeyマクロを実行できないことに注意してください。

17
JosefZ
  1. マクロ(DOSKEY)を保存するファイルを作成します。
    "C:\ bat\macros.doskey"

    ls=dir $* $T
    up=cd.. $T
    ex=exit $T
    np=notepad
    
  2. レジストリエディタに移動します。

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\
    
  3. 右クリックして、新しい「文字列値」サブキーを追加します。 Autorunという名前を付けます。
    右クリック->新規->文字列値

  4. それを右クリックして、値のデータを変更します。
    右クリック->変更->値のデータ->DOSKEY /MACROFILE="C:\bat\macros.doskey"
  5. 行ってもいい。

†ファイルは.doskeyファイルとして保存する必要がないことに注意してください。
†トークン$Tは、複数のDOSKEYを作成する場合に必要です。

12
John DeBord

レジストリを更新せずにこのようにしています。 「コマンドプロンプト」をタスクバーに固定し、タスクバーのアイコンを右クリックします。ポップアップから「プロパティ」を選択します。 [ターゲット:]フィールドに次のように入力します。

%windir%\system32\cmd.exe /F:on /k doskey /macrofile=C:\cmds\macros.txt && Title CONSOLE

次に、C:\cmds\フォルダー、コマンドプロンプトを開き、目的の「doskey」マクロを設定します。

doskey ip=ipconfig
doskey ls=dir /w

最後に、マクロファイルを作成します。

doskey /macros > C:\cmds\macros.txt

これにより、タスクバーの[コマンドプロンプト]アイコンが変更され、起動時にマクロファイルを使用してdoskeyが呼び出されます。マクロが必要ない場合は、スタートメニューの[コマンドプロンプト]を使用できます。

1
RichK

Clinkと組み合わせてdoskeyマクロを使用したい場合は、 this に従って、次のように追加します。

&& doskey.exe /macrofile="C:\Your\Path\To\Your\DosKeyFile"

regkey "AutoRun"に

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

鉱山はこんな感じ

"C:\Your\Path\To\Your\clink.bat" inject --autorun && doskey.exe /macrofile="C:\Your\Path\To\Your\DosKeyFile"

あなたのものは異なる場合があります。

ソース

1
eskoONE

多くの場合、複数のコマンド間で&または&&を使用できますが、括弧で完全なシーケンスを囲むことにより、すべての場合で&および&&を使用できます。 Cドライブに配置したいファイル名の一部を覚えている場合は、以下を試してください。

  1. L =エコー。 &echoドライブC&エコー。 &dir c:\ "* $ **"/s/b

  2. L =(echo。&echoドライブC&echo。&dir c:\ "* $ **"/s/b)

0