私は、Windows 7上でwhich.batを持って、
@echo off
REM This bat searches a file in PATH list to see whether a file can be found.
REM If found, it shows the file's full path.
REM which.bat gcc.exe
REM shows
REM gcc.exe is found: D:\GMU\MinGW2\bin\gcc.exe
REM
REM Note: Filename extension is significant in the search. E.g. If you run
REM which.bat gcc
REM gcc.exe will not be matched.
IF "%1" == "" goto END
IF "%~$PATH:1" == "" (
echo %1 is not found in any directories from PATH env-var.
) ELSE (
echo %1 is found: %~$PATH:1
)
:END
今日は奇妙な行動を見つけるまで、このバットはうまく動作します。
はファイルO:\temp\pfiles (x86)\mystuff.txt
あり、そしてPATHはコンテンツがあります。
\mystuff.txt was unexpected at this time.
一部がチャンスをうかがっ後:
PATH=O:\temp\pfiles (x86);D:\CmdUtils
がwhich mystuff.txt
を実行すると、私は非常に奇妙な出力を得ました、私はディレクトリ名の(x86)
がth eの問題。この問題を回避するために、私はこのように、echo
に引用符を追加する必要があります。
echo %1 is found: "%~$PATH:1"
、このような微調整の欠点は明らかである:引用符は、常にプログラマの意見で望まれていない画面に印刷されます。
誰でもこの奇妙な行動を説明できますか?
実際の環境では、PATHにC:\Program Files (x86)\Common Files\NetSarang
のようないくつかのパスがありますが、これはまったく同じ症状を示しています。
と無害
それともあるが、私はお知らせいただきありがとうございます。 '' where.exe''は素晴らしいです。私は '' where.exe''がまだないWindows XPからwhich.batを使っています。 –
良い情報...しかし、あなたが '実行可能ファイル'を探していて、拡張子を与えていないのであれば、うまくいきません... 'where.exe'を使うか、ouがlinuxにあるのか 'which'を使うかちょうどCygwinをインストールし、 'を使用して...'素晴らしい作品! – ZEE