ใช่มันเป็นไปได้อย่างแน่นอน เพียงเขียนไฟล์. bat สามไฟล์ คนแรกควรมีลักษณะเช่นนี้:
@echo off
if "%1" == "" goto x86
if not "%2" == "" goto usage
if /i %1 == x86 goto x86
if /i %1 == ia64 goto ia64
goto usage
:x86
if not exist "%~dp0bin\x86.bat" goto missing
call "%~dp0bin\x86.bat"
goto :eof
:ia64
if not exist "%~dp0bin\ia64.bat" goto missing
call "%~dp0bin\ia64.bat"
goto :eof
:usage
echo Error in script usage. The correct usage is:
echo %0 [option]
echo where [option] is: x86 ^| ia64
echo:
echo For example:
echo %0 x86
goto :eof
:missing
echo The specified configuration type is missing. The tools for the
echo configuration might not be installed.
goto :eof
ไฟล์. bat ตัวที่สองและที่สามนั้นเหมือนกันยกเว้นว่าจะแตกต่างกันในชื่อของพวกเขา ไฟล์แรกจะถูกเรียกว่า x86.bat ia64.bat อันที่สองและวางไว้ในโฟลเดอร์ที่ชื่อว่า bin ซึ่งอยู่เหนือไฟล์ bat แรก คุณจะมีสิ่งนี้:
PATH\first.bat
PATH\bin\x86.bat
PATH\bin\ia64.bat
เนื้อหาของไฟล์. bat ที่สองและสามควรมีลักษณะดังนี้:
@set PATH=THE PATH YOU WANT
คุณสามารถสร้างลิงค์ไปยังไฟล์. bat แรกซึ่งจะมีการตั้งค่าต่อไปนี้:
เป้าหมาย:% comspec% / k "PATH \ first.bat" OPTION | โดยที่ OPTION คือ x86 หรือ ia64
เริ่มใน: PATH | โดยที่ PATH คือ PATH ของคุณ first.bat
สคริปต์เป็นสคริปต์แบบย่อที่ Microsoft ใช้เพื่อเริ่มบรรทัดคำสั่งที่ถูกต้องสำหรับสภาพแวดล้อม Visual Studio คุณสามารถขยายสคริปต์นี้ไปยังสภาพแวดล้อม N โดยการเพิ่มไฟล์. bat เพิ่มเติมสำหรับสภาพแวดล้อมที่แตกต่างกันและโดยแก้ไขไฟล์ first.bat ด้วยตัวเลือกเพิ่มเติมและคำสั่ง goto ฉันหวังว่ามันจะอธิบายตัวเอง
และฉันหวังว่า Microsoft จะไม่ฟ้องฉันเนื่องจากใช้สคริปต์ของพวกเขา
แก้ไข:
ฉันคิดว่าฉันเข้าใจคุณผิดเล็กน้อย สำหรับบรรทัด 32 บิต cmd ลิงก์ควรสร้างเป็น:
เป้าหมาย:% windir% \ SysWoW64 \ cmd.exe "PATH \ first.bat" x86
EDIT2:
ลองสิ่งที่ชอบ:
if "%ProgramFiles%" == "%ProgramFiles(x86)%" goto x64_PATH
if "%ProgramFiles%" == "%ProgramW6432%" goto x86_PATH
:x64_PATH
@set PATH=YOUR 64 bit PATH
SOME_PATH\your64BitApp.exe
goto :eof
:x86_PATH
@set PATH=YOUR 32bit PATH
SOME_PATH\your32BitApp.exe
goto :eof
echo %programfiles%
แสดงเส้นทางที่แตกต่างกันขึ้นอยู่กับประเภทของ cmd.exe ที่รันจาก แต่where ssleay32.dll
ทั้งสองประเภทของ cmd.exe (32 บิตและ 64 บิต) ไม่สามารถค้นหา dll นี้และแสดงINFO: Could not find files for the given pattern(s).
ความคิดเห็นใด ๆ