mieki256's diary



2008/12/24(水) [n年前の日記]

#1 [prog][windows] Windows XP用のwhichやwhereってないのかな

_Windows Vistaにはwhereがあるらしい のだけど。Windows XP にはないみたいで。

_@IT:Windows TIPS -- Hint:whichコマンドを作る :

Windows OSのコマンド・プロンプトでは、UNIXと同じ機能を持つコマンドがいくつも用意されているが、なぜかこのwhichに相当するコマンドは用意されていない。そこでバッチ・コマンドを使って非常に簡略化したwhichコマンドを実現してみよう。以下の2行の内容を持つファイルを作成し、which.batというファイル名で保存すればよい。保存先は、Windows OSのシステム・フォルダ(Windows NTならC:\WINNT、Windows 2000以降ならC:\WINDOWSなど)でよいだろう。

@echo off
for %%I in (%1 %1.com %1.exe %1.bat %1.cmd %1.vbs %1.js %1.wsf) do if exist %%~$path:I echo %%~$path:I

※この2行の内容をファイルwhich.batとして保存すること

実行するには、whichに続けて、調べたいコマンドの名前を付ければよい。

@IT:Windows TIPS -- Hint:whichコマンドを作る より

_Windows Script Programming: Where is where.exe ? :

unix の which に相当するのは、Windows では whrere.exe です。MS 純正の where.exe は、以下からダウンロードできます。
ftp://ftp.microsoft.com/reskit/y2kfix/x86/where.exe

which をバッチファイルで代替すると、

which.cmd ベース名.拡張子

@if exist "%~$PATH:1" echo;"%~$PATH:1"

この場合は、拡張子が省略できません。

拡張子を省略可にしたければ、環境変数のPATHEXTを使って、拡張子を補います。

which.cmd ベース名

@for %%1 in (%*) do @for %%2 in (.;%PATHEXT%) do @for %%3 in ("%%~1%%2") do @if exist "%%~$PATH:3" echo;"%%~$PATH:3"

Windows Script Programming: Where is where.exe ? より

_ftp://ftp.microsoft.com/reskit/y2kfix/x86/

_手慰みのスクリプト which - しおそると :

_DOSのバッチファイルでカレントフォルダを取得するには? -OKWave
D&Dしたファイルのファイル名(フルパス名)は、バッチファイル内では、バッチファイルに渡されるパラメータとして、%1に格納されています。
また、バッチファイル自身のフルパス名は、%0に格納されています。
で、%0から、パス名やファイル名だけを取り出すには、パラメータ修飾子を使用します。
(下記の括弧内は、ファイル名が"C:\Documents and Settings\user\デスクトップ\test.bat"の時の例)

%0  :パラメータ全体("C:\Documents and Settings\user\デスクトップ\test.bat"⇒パス名にスペースが含まれているので、引用符(")が付く)
%~d0 :%0からドライブ名だけを取り出す。(C:)
%~p0 :%0からパス名だけを取り出す。(\Documents and Settings\user\デスクトップ\⇒両端に"\"が付く)
%~n0 :%0からファイル名だけを取り出す。(test)
%~x0 :%0からファイル拡張子だけを取り出す。(.bat)
%~s0 :%0をMS-DOSの8.3形式の短いファイル名を取り出す。(C:\DOCUME~1\USER\デスク~1\TEST.BAT)
(複数の修飾子を組み合わせることも可能)

なので、"test.bat"のパス名は、"%~dp0"で取り出せます。

cd %~dp0  (または、cd "%~dp0"←パス名にスペースが含まれる時)

DOSのバッチファイルでカレントフォルダを取得するには? -OKWave より

_Windows/DOS Free Soft :

which.exe (Screen Shot)
指定コマンドが何処にあるか探す(実行されているコマンドのパスを知る)。 UNIX cshのwhichもどき。-aで全検索可能

Windows/DOS Free Soft より

おお。ありがたや。

_@IT:Windows TIPS -- Hints:Windows OS向けリソースキット・ツールを入手する :

_Windows Server 2003 Resource Kit Tools

Windows XP向けのリソースキット・ツールは提供されていない(2004年4月現在)。しかしWindows Server 2003向けツールの必要環境を見ると、Windows XP/Windows XP SP1が対象環境として列挙されている。Windows XPユーザーは、Windows Server 2003向けのツールをインストールして使うことが可能である。

@IT:Windows TIPS -- Hints:Windows OS向けリソースキット・ツールを入手する より

入ってるツールの一覧を眺めたけれど。Tail.exe は入ってるけど、where.exe は入ってないっぽい。

以上です。

過去ログ表示

Prev - 2008/12 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project