1 ضمیمه
انتخاب دو یا چند گزینه در داس
سلام من میخوام با داس یک فایل نصبی درست کنم که از طریق منو بتوانم فایلهای مورد نیاز خود را انتخاب و نصب کنم.
مشکل من اینه که نمیدانم چطور دو کلید همزمان به داس بدم که این کار را برای من انجام بده.
مثلا میخوام گزینه 1و3 نصب بشه و از نصب گزینه دو خودکاری کنه یا گزینه 1و2 نصب بشه و از از نصب گزینه 3 جلوگیری شه.
مانند عکس زیر:
ضمیمه 150758
اینم نمونه کدی که درست کردم اما تنها یک گزینه را میشود انتخاب کرد:
@echo off
set "cols=50"
set "lines=10"
mode con: cols=%cols% lines=%lines%
cls
:menu
rem Color 0F
Color 1F
cls
title Silent installer
echo [1] intall Acrobat Reader
echo [2] Install WinRAR archiver
echo [3] Install Firefox
echo [4] Install all files
echo.
echo [5] exit
echo.
echo input key:
set /p menuchoice=
if %menuchoice% == 1 goto Acrobat
if %menuchoice% == 2 goto WinRAR
if %menuchoice% == 3 goto Firefox
if %menuchoice% == 4 goto allfiles
if %menuchoice% == 5 goto exit
cls
:Acrobat
cls
Color 2F
echo.
echo Install Silent... (1-3)
echo.
echo Install Adobe Acrobat Reader
start /w x86\Soft\Adobe_Acrobat.exe
cls
goto menu
:WinRAR
cls
Color 2F
echo.
echo Install Silent... (2-3)
echo.
echo Install WinRAR archiver
start /w x86\Soft\WinRAR.exe
cls
goto menu
:Firefox
cls
Color 2F
echo.
echo Install Silent... (3-3)
echo.
echo Install Firefox
start /w x86\Soft\fiefox.exe
cls
goto menu
:exit
cls
Color 4F
echo.
@echo Exit Command Prompt
echo.
@pause
نقل قول: انتخاب دو یا چند گزینه در داس
دوست عزیز اول بگم من این کد رو امتحان نکردم و خودتون ببینید کار میکنه یا نه:
@echo off
set "cols=50"
set "lines=10"
mode con: cols=%cols% lines=%lines%
cls
:menu
rem Color 0F
Color 1F
cls
title Silent installer
echo [1] intall Acrobat Reader
echo [2] Install WinRAR archiver
echo [3] Install Firefox
echo [4] Install all files
echo.
echo [5] exit
echo.
set /p menuchoice= input key:
for %%a in (%menuchoice%) do (
if %%a == 1 goto Acrobat
if %%a == 2 goto WinRAR
if %%a == 3 goto Firefox
if %%a == 4 goto allfiles
if %%a == 5 goto exit
)
cls
:Acrobat
cls
Color 2F
echo.
echo Install Silent... (1-3)
echo.
echo Install Adobe Acrobat Reader
start /w x86\Soft\Adobe_Acrobat.exe
cls
goto menu
:WinRAR
cls
Color 2F
echo.
echo Install Silent... (2-3)
echo.
echo Install WinRAR archiver
start /w x86\Soft\WinRAR.exe
cls
goto menu
:Firefox
cls
Color 2F
echo.
echo Install Silent... (3-3)
echo.
echo Install Firefox
start /w x86\Soft\fiefox.exe
cls
goto menu
:exit
cls
Color 4F
echo.
@echo Exit Command Prompt
echo.
@pause
کار این کد باید به این صورت باشه که بتونید اعداد مختلف رو با فاصله وارد کنید: مثلاً: 5 2 1
خب اگه کار بکنه که خیلی خوبه.
نقل قول: انتخاب دو یا چند گزینه در داس
راستی دوست عزیز شما برای عدد 4 بخشی نساختید؟
نقل قول: انتخاب دو یا چند گزینه در داس
نقل قول:
نوشته شده توسط
ASHKANLAEI
راستی دوست عزیز شما برای عدد 4 بخشی نساختید؟
عدد 4 فعلا مهم نیس اونو بعدا میتونم ردیف کنم
نقل قول:
نوشته شده توسط
ASHKANLAEI
کار این کد باید به این صورت باشه که بتونید اعداد مختلف رو با فاصله وارد کنید: مثلاً: 5 2 1
با فاصله هم کار نمیکنه
نقل قول: انتخاب دو یا چند گزینه در داس
من امتحان کردم و کار کرد.
باید از حلقه for استفاده کنید.
که از طریق فاصله ها اعداد رو جدا میکنه.
نقل قول: انتخاب دو یا چند گزینه در داس
نقل قول:
نوشته شده توسط
ASHKANLAEI
من امتحان کردم و کار کرد.
باید از حلقه for استفاده کنید.
که از طریق فاصله ها اعداد رو جدا میکنه.
بلدنیستم
ممنون میشم دستور for را در کدبالا برایم قراردهید.
نقل قول: انتخاب دو یا چند گزینه در داس
ببینید این کد کار میکنه؟:
@echo off
set "cols=50"
set "lines=10"
mode con: cols=%cols% lines=%lines%
cls
:menu
rem Color 0F
Color 1F
cls
title Silent installer
echo [1] intall Acrobat Reader
echo [2] Install WinRAR archiver
echo [3] Install Firefox
echo [4] Install all files (don't use)
echo.
echo [5] exit
echo.
set /p menuchoice= input key:
for %%a in (%menuchoice%) do (
if %%a == 1 (
cls
Color 2F
echo.
echo Install Silent... (1-3)
echo.
echo Install Adobe Acrobat Reader
start /w x86\Soft\Adobe_Acrobat.exe
cls
)
if %%a == 2 (
cls
Color 2F
echo.
echo Install Silent... (2-3)
echo.
echo Install WinRAR archiver
start /w x86\Soft\WinRAR.exe
cls
)
if %%a == 3 (
cls
Color 2F
echo.
echo Install Silent... (3-3)
echo.
echo Install Firefox
start /w x86\Soft\fiefox.exe
cls
)
if %%a == 5 (
cls
Color 4F
echo.
@echo Exit Command Prompt
echo.
@pause
exit
)
)
نقل قول: انتخاب دو یا چند گزینه در داس
نقل قول:
نوشته شده توسط
ASHKANLAEI
ببینید این کد کار میکنه؟
نه کار نمیکنه!
نقل قول: انتخاب دو یا چند گزینه در داس
در کد قبلی هم از for استفاده کردم فقط یادم نبود که وقتی به بخش دیگه میره برمیگیرده به اول منو.
یعنی ورودی قبلی و در کل خود for پاک میشدند.
به همین خاطر کدتون رو ویرایش کردم و همۀ بخش ها رو منتقل کردم به همون قسمت منو (که نیازی به GoTo نباشه)
نقل قول: انتخاب دو یا چند گزینه در داس
ببخشید ارور میده یا کار نمیکنه؟
نقل قول: انتخاب دو یا چند گزینه در داس
کار نمیکنه
حتی کلید 5 رو میزنم باید خارج بشه اما دستورات 1 2 3 را اجرا میکنه
نقل قول: انتخاب دو یا چند گزینه در داس
ببخشید، مشکل این بود که در مراحل نصب، پرانتز چاپ میکردید!
آپدیت:
@echo off
set "cols=50"
set "lines=10"
mode con: cols=%cols% lines=%lines%
cls
:menu
rem Color 0F
Color 1F
cls
title Silent installer
echo [1] intall Acrobat Reader
echo [2] Install WinRAR archiver
echo [3] Install Firefox
echo [4] Install all files (don't use)
echo.
echo [5] exit
echo.
set /p menuchoice= input key:
for %%a in (%menuchoice%) do (
echo %%a
if %%a == 1 (
cls
Color 2F
echo.
echo Install Silent... ^(1-3^)
echo.
echo Install Adobe Acrobat Reader
start /w x86\Soft\Adobe_Acrobat.exe
cls
)
if %%a == 2 (
cls
Color 2F
echo.
echo Install Silent... ^(2-3^)
echo.
echo Install WinRAR archiver
start /w x86\Soft\WinRAR.exe
cls
)
if %%a == 3 (
cls
Color 2F
echo.
echo Install Silent... ^(3-3^)
echo.
echo Install Firefox
start /w x86\Soft\fiefox.exe
cls
)
if %%a == 5 (
cls
Color 4F
echo.
@echo Exit Command Prompt
echo.
@pause
exit
)
)
نقل قول: انتخاب دو یا چند گزینه در داس
در ضمن، یادتون باشه که قبل از چاپ پرانتز، علامت ^ را بنویسید (حتماً و همیشه)
نقل قول: انتخاب دو یا چند گزینه در داس
خیلی خیلی خیلی ممنونم :قلب:
ایشاله هرچی از خدا میخوای بهت بده
بازم ممنون
نقل قول: انتخاب دو یا چند گزینه در داس
خواهش میکنم بازم ببخشید که اطلاعات غلط چند بار دادم
چون من زیاد با cmd کار نمیکردم