2016-12-13 3 views
1

cmdウィンドウでプログラムを検索して実行する必要があります。7.次のコードを試しました。WHERE内の属性を持つプログラムを実行するには

START WHERE /R C:\ Program.exe /uninstall 
dir /s /b Program.exe /uninstall 

演算子を使用してプログラムを開始する別の(簡単な/より良い)方法がありますか?

+0

なぜ機能するのですか? –

+0

プログラムは異なるPCの異なるディレクトリにインストールされます。アンインストールを検索して開始する必要があります。これまでのところ、ファイルを見つけ出して起動することができました。それは私が通常C:\ location \ program.exe/uninstallで入力した "/ uninstall"を無視してプログラムを削除します。 – grayfoxmy

+0

申し訳ありませんが、私は検索機能がプログラムを実行していないことを認識していませんでした。私の悪い。検索でプログラムを実行する方法はありますか? – grayfoxmy

答えて

0

whereはファイルを検索しますが、実行しません。 start whereは、新しいcmdインスタンスにはwhereを開始するだけで何もしないので、whereに関連し、whereで検索されるファイルには、startが関係しません。

dirはディレクトリの内容をリストしますが、何も実行しません。実際にdir /S /B C:\Program.exeを使用して、をPogram.exeに検索する必要があります。 dir /S /B Program.exeは現在の作業ディレクトリで(再帰的に)Program.exeを検索することに注意してください。

/uninstallスイッチは、指定したとおり、whereまたはdirコマンドラインの一部と見なされます。次の2つのフェーズにタスクを分割する必要が

:再帰的にC:\でファイルProgram.exeを検索

  1. ファイルProgram.exeを実行して、オプション/uninstallを使用します。ここで

それはwhereを使用して仕事ができる方法です:

:ここ

for /F "delims=" %%E in ('where /R "C:\" "Program.exe"') do (
    "%%E" /uninstall 
) 

dirを使用しての方法(/A:-DオプションがProgram.exe呼ばディレクトリを返さないために追加されている)であります

for /F "delims=" %%E in ('dir /S /B /A:-D "C:\Program.exe"') do (
    "%%E" /uninstall 
) 

と呼ばれるファイルがさらにある場合をC:\に設定すると、すべてが実行されます。

+0

に言及する価値があるかもしれません: 'where'は'%path% 'の中のフォルダでしか見ないので、かなり高速です。 'dir'はフォルダーツリー全体(' dir/s/bc:\ program.exe'でドライブ全体)を検索します。これは '%path%'の外側でも結果を取得しますが、大きく、完全なドライブ... – Stephan

+0

@Stephan、OPは 'where'の'/R'オプションを使用していたので、 'dir'と' where'はこの状況で同等です... – aschipfl

+0

ありがとうございました。 C:\ program.exeがC:¥?を完全に検索する方法を明確にしたいのですが?私はC:\ windowsでprogram.exeのために検索したいのですか?C:\ Windows \ program.exe? – grayfoxmy

関連する問題