2017-06-08 11 views
0

管理者と同じディレクトリにある.exeを実行する.batを実行することができます。私はbatファイルを右クリックし、[管理者として実行]を選択します。pendriveから管理者として.bat(同じディレクトリにある.exeを実行する)を実行するにはどうすればいいですか?

ことを行うことができるようにするために、私は次のような答えを使用:.BATファイルやプログラムがある場合ただし、これはのみ動作します

@echo off :A cls echo This will start the program. pause cd %~dp0 start %1myprogram.exe exit

Run exe from current directory in batch

は、ここでは、コードですシステムドライブで彼らはペンドライブで、例えば、ある、と私は、「管理者として実行」を右クリックして選択した場合ので、私はエラーを取得する

:。

Windowsは 『myprogram.exeという』を見つけることができませんしてください "

なぜこのようなことが起こり、どうすれば修正できますか? 私は、cd%〜dp0を使用すると、バットファイルが存在するフォルダを常に指していると考えました。

ありがとうございます。

答えて

1

ソリューション
変更CD%〜DP0にcd/dは%〜DP0

説明
あなたが管理者権限、作業ディレクトリの変更で何かを実行します。
「C:\ WINDOWS \ System32に」%〜DP0はまだドライブとバッチファイルを含むディレクトリを指すが
は、cd% 〜dp0はディレクトリを変更するだけで、同じドライブにとどまるため動作しません。
/dパラメータを使用すると、cdコマンドにドライブの変更を指示することもできます。あなたはまた、ドライブを変更するには、CDを伝える必要があるかもしれません

+0

申し訳ありませんが、 'cd'コマンド*はドライブを変更できます。 '/ d'パラメータを使います:' cd/d%〜dp0' – Stephan

+0

私はこれを知らなかった。私は私の答えを編集するので、pushdはもはや誤用されていません。 – tOmAtE

+0

完璧に動作します!ソリューションと説明に感謝します:) – AlexC

0

現在のドライブがC:の場合(たとえば、プロンプトにC:\>)、CD D:\FOOを実行すると、ドライブD:の現在のディレクトリは\ FOOに設定されますが、ドライブC:のままです。次のことを試してみてください。

だけではなく myprogram.exe、あるいは単に myprogram
@echo off 
:A 
cls 
echo This will start the program. 
pause 
cd %~dp0 
%~d0 
start %1myprogram.exe 
exit 

(また、なぜ%1myprogram.exeあなたはそれを実行するバッチファイルを右クリックしている場合は、%1があるように行っていません? 。)

+0

ジェフ、あなたは正しいですしている、%1は必要ありません。私はそれを削除しました。 – AlexC

1

cd /d %~dp0 
+0

これは正しいです、ありがとうございます。 – AlexC

関連する問題