以下が含まれている場合LatestExcel.bat
、それをクリックすると、求める効果が得られます。
@echo off
if exist "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" GOTO L2007
if exist "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" GOTO L2003
echo "Excel not installed"
pause
GOTO End
:L2007
Call "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"
GOTO End
:L2003
Call "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE"
:End
代替ソリューション
CALL
最初のソリューションで使用した、は別のバッチファイルまたはプログラムに制御を与えますが、そのバッチファイルまたはプログラムが終了すると制御を取り戻します。CMD.EXE
これがアクティブなままである理由です。制御を切り替えるバッチコマンドを覚えていると思いましたが、見つかりません。私は別のスクリプト言語を考えているに違いありません。
ところで。Googleの「Windowsバッチファイルコマンド」を使用すると、バッチファイルコマンドのチュートリアルまたは構文を提供するサイトの選択肢が提供されます。ただし、私は通常、コマンドHelp
Pause
またはを使用してバッチファイルを作成しますHelp Copy
Pause
。
このソリューションでは、Excel2003用とExcel2007用の2つのショートカットを作成し、それらをTempに配置しました。PickLatestExcel.bat
以下のステートメントでバッチファイルを作成しました。通常のフォルダとデスクトップで試してみましたが、どちらの場合も正しいショートカットファイルを移動して名前を変更しましたExcel
。
私はあなたが操作している環境を知りませんが、おそらくこれらの2つのソリューションは、バッチファイルで何を達成できるかについてのアイデアをあなたに与えるでしょう。
rem @echo off
if exist "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" GOTO L2007
if exist "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" GOTO L2003
echo "Excel not installed"
pause
GOTO End
:L2007
Copy "C:\Windows\Temp\Excel2007.lnk" Excel.lnk
GOTO End
:L2003
Copy "C:\Windows\Temp\Excel2003.lnk" Excel.lnk
:End