
お世話になります。
Windowsのコマンドラインプロンプトでは、ある程度タイプして[TAB}キーを押下すると、カレントディレクトリにあるファイル名を補完してくれます。
たとえば xxxxYYY というファイルがあるディレクトリにおいて
C:\foo\> x[TAB]
のようにタイプすると、xxxxYYYと補完されます。
LinuxやMacを含むUNIX系のコマンドライン環境では、カレントディレクトリだけでなく、PATHに入っているコマンドも補完してくれます。具体的に言うと、C:\myProgram\bin\xxxxYYY.exeというコマンドを、C:\fooという全然違うカレントディレクトリにあっても、
C:\foo\> x[TAB]
で補完してくれます。
この、PATHにあるコマンド名の補完は、Windowsでも可能でしょうが。
具体的には、何らかのフリーウェアを常駐させる、レジストリを書き換えるなどによって、可能になるでしょうか。
私は20年以上DOS/Windowsを使い込んでいるのですが、この機能さえあれば本当に助かります。
Linuxを使え、WindowsでCygwinを使えというのはナシで、あくまでWindowsのcmdを使い続けるという前提でお願いします。
よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
*補足です*
PerlのスクリプトはWindowsでは「コマンド」として認識できないのでPATH変数による補完はされないと思います。
Cygwinでもできない気がします。
PS上でCMD.exeを実行すると別プログラムを起動することになりますので呼ばれた側で一時停止なりをしなければそのままプログラムが終了してしまいます。
システム管理上はレジストリ操作などができて色々便利なのですが、bashなどのシェルとして扱おうとすると考え方の違いにかなり戸惑うと思います。
この回答への補足
Windowsで動くzsh、bashっていうのがありますね。
ぼくはzshが好きなのでこれもいいですね。
Cygwinはちょっと大げさなのでこれが使えればいいかも。
http://d.hatena.ne.jp/griefworker/20100201/windo …
でもDOS窓が拡張されると一番いいな。
DOSのコマンドも使いこなせるようになりたいので・・・。
ありがとうございます。
いま、ひさびさにCygwinを入れて確認しましたが、CygwinであればPATHにあるファイルを補完してくれるようですね。
特に「コマンド」として認識する必要はなく、PATHにあるファイルであればなんでも補完してくれるようです。
コマンドでないファイルも補完してくれて、そのまま起動するとエラーになるようです。
よくも悪くも自己責任のUNIX流ですね。(^^)
PSはものすごくパワフルなようですが、CMD/bashとはまた違うベツモノですね。
機会があれば覚えるんでしょうが、まだまだ先ですね・・・。
No.3
- 回答日時:
CMDではありませんが…
WindowsPowerShell はいかがですか?
http://ja.wikipedia.org/wiki/Windows_PowerShell
XP以降で使用可能ですが、Windows7では標準搭載されています。
ご回答ありがとうございます。
PowerShellはオブジェクト指向の画期的なシェル環境ということで、昔はいろいろ本も出ていて、勉強しかけたのですが、複雑すぎて挫折してしまいました。
しかし、7で標準搭載されたということは、cmdが置き換わらないとも限らないので、改めて勉強しようと思います。
さて、PowerShellの補完機能では、確かに今までとは比べ物にならないいろいろなプログラムが補完出来たのですが、PATHに置いた自作のPerlスクリプトは補完してもらえませんでした。
また、cmdで標準出力にメッセージを出力するプログラムを実行すると、cmdウィンドウ(DOS窓)が一瞬開いて内容が表示されてすぐ消えてしまうので、私の用途には使えないと分かりました。
(何らかのPowerShell独自のオブジェクト指向コマンドを使えば出来るのかもしれませんが、そこまで調べが行き届きませんでした。)
引き続き、PATH配下のコマンド補完についてどなたか何か分かりましたら、ご教示くださるようお願いいたします。
ご回答をくださったみなさんありがとうございました。
No.2
- 回答日時:
ファイル名やディレクトリ名の補完は下記の記事が参考になると思います。
http://www.atmarkit.co.jp/fwin2k/win2ktips/072cm …
なお上記の方法でパスにあるコマンドの補完はできませんでした。
ご回答ありがとうございます。
cmdの補完は昔は /F:ONをわざわざ指定する必要があったようですが、現状はこれがデフォルトになりましたね。
わざわざ試していただき、ありがとうございます。
No.1
- 回答日時:
コマンドプロンプト CMD.EXE にはそういう機能はありません。
CMD.EXEを置き換えるようなソフトを探すくらいしかないと思います。補完より知られていないコマンドプロンプトの機能で、シェルでいうaliasにあたるものがありますので、それを活用するのも手かと。わたしはそうしてます。
e=notepad.exe $*
ls=dir /w /a $*
h=doskey /history $*
のような定義ファイルを作っておき、コマンドプロンプトの起動ショートカットを
%SystemRoot%\system32\cmd.exe /k doskey /macrofile=定義ファイル名
のように修正します。あるいは、cmd /? を参照して下記のレジストリにdoskeyコマンドを書いておけばどのようにCMD.EXEを起動しても有効になります。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
ありがとうございます。
これもなかなか便利ですね~。
さて、私の目的は、特定の場所に置いたPerlのスクリプトを実行する時にタイプを早くしたいと言うものでした。
PATH配下にある実行可能形式のタブ補完はUNIX系では一般的なものであり、かつ明らかに便利なので、何らかの方法で実装していればと思い、質問させていただきました。
いずれにせよ、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
「トゥ]の出し方
-
mxlinux 起動時エラーについて
-
ssl_error_logのエラー内容(AH...
-
Linux のシェルスクリプトの強...
-
ubuntuで デイスク/deb/loopと...
-
Linuxでブートディスクの交換後...
-
windows10を使っています。 wsl...
-
WinSCPでLinux(CentOS6.10)に...
-
ssh接続しようとしたらエラーメ...
-
ubuntuのシャットダウンが進ま...
-
linuxのIMEの件
-
Rasberry pi のオンボードNICの...
-
raspberrypi に bluealsaを入れ...
-
Ububtuでファイル共有できない...
-
WineのRufusでデバイスを検知す...
-
LinuxのノートパソコンでDVDコ...
-
lubuntuのインストールが終わり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
Illustratorのデータをまとめて...
-
【ターミナル】MacBookにディー...
-
DOSコマンドでのワイルドカ...
-
Windows10のRegSys32に登録され...
-
UNIXシェル内での日付計算
-
Warning: Output is not to
-
SolarisからWindowsへFTPすると...
-
ウィンドウズお自動起動後、ラ...
-
cactiでグラフが表示されない
-
IBM漢字コードのSJIS変...
-
別名でリンク先を保存。
-
FTP接続中のコマンド実行結果を...
-
「xcopy /s d:\\ f:\\」の意味は?
-
CPUのbit数を調べるコマンド
-
ACCESSでセキュリティ警告が出...
-
BATファイル実行にフォーカ...
-
rcpコマンドについて、教えて!
-
MSDOSコマンドについて教...
-
システムまるごとコピーする方法
おすすめ情報