2013-03-04 07:28:04 +0000 2013-03-04 07:28:04 +0000
71
71

Windowsコマンドラインでエイリアスを設定するには?

私は以前bashで仕事をしていて、エイリアスの恩恵をたくさん受けていました。Windowsのコマンドラインで同等の方法はありますか?

Linux環境をシミュレートしたくないので、cygwinは選択の余地がありません。cd a_very_long_pathのような非常に長いコマンドのショートカットが必要なだけです。

回答 (7)

68
68
68
2013-03-04 12:03:15 +0000

Christian.K氏がコメントで述べているように、DOSKEYコマンドはエイリアスに似たマクロを定義するために使用することができます。

doskey macroName=macroDefinition

マクロパラメータは、定義の中で$ 接頭辞の位置を介して参照されます。$1 から $9 までと $* はすべて doskey /? で参照されます。

詳細は doskey technet documentation を参照するか、コマンドラインから help doskey または someMacro|findstr '^' と入力してください。

しかし、DOSKEYマクロには重大な制限があります。

  • マクロは対話型コマンドライン上でのみ動作します。
  • これらのマクロはパイプの両側では使えません。dir|someMacrofor /f %A in ('someMacro') do ... の両方が失敗します。
  • FOR /F コマンド内では使用できません。0x6& は失敗する

この制限は非常に厳しく、私は DOSKEY マクロをほとんど使わない。

明らかに、マクロの代わりにバッチスクリプトを作成して、スクリプトの場所が PATH にあることを確認することができます。しかし、他のスクリプトの中でスクリプトを使いたい場合は、各スクリプトの前に CALL を付けなければなりません。

長くてよく使われるコマンドのためのシンプルな変数「マクロ」を作成することもできますが、構文は少し入力しづらいです。

定義。

set "cdMe=cd a_very_long_path"

使用法 (コマンドラインまたはスクリプトから)

%cdMe%
16
16
16
2013-03-04 13:01:49 +0000

バッチスクリプトを作成してパスに保存することができます。

Linuxではスクリプトを作成して~/binフォルダに追加します。

環境変数%USERPROFILE%\binPATHを追加してください。そして、そこにスクリプトを保存します。

quickcd.cmd

@echo off
cd /d a_very_long_path

これでコマンドラインでquickcdと入力できるようになりました。

call 関数 0x6&

call quickcd
``` を使用してスクリプト内で呼び出すこともできます。
14
14
14
2014-01-09 06:21:00 +0000

subst

どうしてもこのような事態を回避しようとしているのであれば

C:> cd \users\myLoginID\documents\clients\MTV\strategy\roadmap\deliverable\final

substコマンドを使用して、その長いパスを別のドライブレター

subst m: c:\users\myLoginID\documents\clients\MTV\strategy\roadmap\deliverable\final

にマッピングして、そのフォルダにジャンプしたいときは、コマンドラインでm:と入力するだけです。

doskeyよりも優れている点は、これがすべてのバッチプログラムで動作し、Windows内のどのファイルダイアログボックスにも表示されることです。

マッピングをこれ以上必要としない場合。

subst m: /D
10
10
10
2013-03-11 10:14:50 +0000

例えば、環境変数 %windir% (他にもいくつかあります) があるので、

cd C:\Windows\

または

cd %windir%

を実行して、同じことを行うことができます。つまり、あなたがしなければならないことは

set "mydir=C:\very\long\path\to\my\data\"
dir %mydir%

または

cd %mydir%

または好きなようにすることができます。

1
1
1
2015-09-09 18:42:36 +0000

ディレクトリを変更するための「エイリアス」のようなものを作ってみました。基本的には、fav.batというファイルを作って、それをPATHにあるフォルダ(例:C:MyBatches)に入れている。そのテクニックについては、こちらの記事に詳しく書いています ここ .

1
1
1
2019-02-18 12:41:06 +0000
doskey qcd=cd [pathname]

qcd と入力すると、そのパスに cd が表示されます。

doskey [macroname]=[command]

word と入力すると、そのパスに cd が移動します。

doskey word=echo This is a really, really long sentence.

これが最も単純な形式で、以下に例を示します:

doskey npd=notepad $1

npd と入力すると出力されます。

doskey prt=echo $*

と入力すると、出力は次のようになります。

doskey newline=echo $1 $T echo $2

と入力すると notepad が開きますが、npd test.txt と入力すると notepadtest.txt が開きます。

0x1&

と入力すると出力されます。

0x1&

と入力すると、出力は次のようになります。

0x1&

と入力すると出力されます。

Hello

ご理解いただけたでしょうか。

0
0
0
2016-11-16 18:41:42 +0000

D:cd D:\somedirD:`は必要ありません。

私の場合、C:はシステムファイルを保持していますが、すべての作業はD:

2つのパートに分かれています。

localprofile.cmdとしましょう。必要に応じて実行してください。

set wd1=D:\home\work\fb440.dumper
set wd2=D:\home\work\py\tests

では、先ほど設定した環境変数に基づいて、別のコマンドファイルを使用して移動します。

wd.cmd

echo off
d:
if %1.==. set | findstr wd
if %1==1 cd %wd1%
if %1==2 cd %wd2%
if %1==3 cd %wd3%
if %1==4 cd %wd4%
if %1==5 cd %wd5%
if %1==6 cd %wd6%

そして、ちょっとした使用例です。

D:\home\bin>wd 2

D:\home\bin>echo off
D:\home\work\py\tests>wd 1

D:\home\work\py\tests>echo off

wd自体がブックマークされたディレクトリのリストを表示するようになっています。これは動作しますが、なぜ “exunpected cd "というメッセージが表示されるのかはよくわかりません。

D:\home\work\fb440.dumper>wd

D:\home\work\fb440.dumper>echo off
wd1=D:\home\work\fb440.dumper
wd2=D:\home\work\py\tests
cd was unexpected at this time.

D:\home\work\fb440.dumper>

通常の .cmd バッチ

ディレクトリのナビゲーションとは別に、PATH のどこかに foo.cmd を作成することができます。Linux/OSX シェルとは異なり、cmd ファイルは環境変数やセッションに影響を与えることができます。

d:
cd \home\bin

これは擬似的なgrep grep.cmd

findstr -n %1 %2

動作中のものです (ソート /+2 /+10 が意味するもの)

D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10

dumper2.py:18:class PrettySafeLoader(yaml.SafeLoader):            
dumper2.py:27:class Comparator(object):                           
dumper2.py:3:class module_settings:                               
linker2.py:5:class module_settings:                               
dumper2.py:65:class DataCompProcessor(object):                    
dumper2.py:69:class DataCompTextRenderer(DataCompProcessor):      
dumper2.py:76:class DataComparator(object):
``` となります。