Я создал меню пакетного файла (названное «menu.bat»), в котором перечислены три подменю, связанные с соответствующими пакетными файлами, следующим образом:
- Сетевые функции (networkfunctions.bat)
- Панель управления (controlpanel.bat)
- Аксессуары (accessories.bat)
Пакетное имя файла каждого выбора (то есть, 1, 2, 3) в скобках.
У меня все эти .bat файлы сохранены на моем компьютере в следующей структуре каталогов:
C:\ партия
Вот скрипт, найденный в menu.bat:
echo off title Main Menu ::menu.bat ::Contains main batch file menu cls :menu echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º MY NAME HERE ÄÄ Main Menu º echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ echo º 1. Network Functions º echo º 2. Control Panel º echo º 3. Accessories º echo º 4. Exit º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. echo. set /p input="Select number: " if %input% ==4 goto Exit if %input% ==3 goto Accessories if %input% ==2 goto Control Panel if %input% ==1 goto Network Functions :Network Functions start c:\batch\networkfunctions.bat pause goto menu :Contol Panel start c:\batch\controlpanel.bat pause goto menu :Accessories start c:\batch\accessories.bat pause goto menu :Exit exit
Вот скрипт в network.bat:
echo off title Network Functions ::networkfunctions.bat ::contains network functions and utilities for use on the ::command prompt cls :menu echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º MY NAME HERE Ä Network Functions º echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ echo º 1. IPCONFIG º echo º 2. IPCONFIG /ALL º echo º 3. NETSTAT º echo º 4. NSLOOKUP º echo º 5. Telnet º echo ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĹ echo º 6. Return to Main Menu º echo º 7. Exit º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. echo. set /p input="Select number: " if %input% ==7 goto Exit if %input% ==6 goto Return to Main Menu if %input% ==5 goto Telnet if %input% ==4 goto NSLOOKUP if %input% ==3 goto NETSTAT if %input% ==2 goto IPCONFIG /ALL if %input% ==1 goto IPCONFIG :IPCONFIG start c:\windows\system32\ipconfig.exe pause goto menu :IPCONFIG /ALL start c:\windows\system32\ipconfig.exe \all pause goto menu :NETSTAT start c:\windows\system32\netstat.exe pause goto menu :NSLOOKUP start c:\windows\system32\nslookup.exe pause goto menu :Telnet start c:\windows\system32\telnet.exe pause goto menu :Return to Main Menu start c:\batch\menu.bat pause goto menu :Exit exit
Вот скрипт в controlpanel.bat:
echo off title Control Panel ::controlpanel.bat ::contains a menu of pertinent control panel applets cls :menu echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º MY NAME HERE Ä Control Panel º echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ echo º 1. Configuration Manager º echo º 2. Internet Options º echo º 3. Network Connections º echo º 4. System Properties º echo º 5. Windows Firewall º echo ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĹ echo º 6. Return to Main Menu º echo º 7. Exit º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. echo. set /p input="Select number: " if %input% ==7 goto Exit if %input% ==6 goto Return to Main Menu if %input% ==5 goto Windows Firewall if %input% ==4 goto System Properties if %input% ==3 goto Network Connections if %input% ==2 goto Internet Options if %input% ==1 goto Configuration Manager :Configuration Manager start rundll32.exe shell32.dll,Control_RunDLL C:\WINDOWS\system32\CCM\SMSCFGRC.cpl pause goto menu :Internet Options start rundll32.exe shell32.dll,Control_RunDLL c:\windows\system32\inetcpl.cpl pause goto menu :Network Connections start rundll32.exe shell32.dll,Control_RunDLL c:\windows\system32\ncpa.cpl pause goto menu :System Properties start rundll32.exe shell32.dll,Control_RunDLL c:\windows\system32\sysdm.cpl pause goto menu :Windows Firewall start rundll32.exe shell32.dll,Control_RunDLL c:\windows\system32\firewall.cpl pause goto menu :Return to Main Menu start c:\batch\menu.bat pause goto menu :Exit exit
Вот скрипт в accessories.bat:
echo off title Accessories ::accessories.bat ::contains a menu of pertinent utilities and applications cls :menu echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º MY NAME HERE Ä Accessories º echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ echo º 1. DOS Edit º echo º 2. Notepad º echo º 3. System Information º echo º 4. System Restore º echo ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĹ echo º 5. Return to Main Menu º echo º 6. Exit º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. echo. set /p input="Select number: " if %input% ==6 goto Exit if %input% ==5 goto Return to Main Menu if %input% ==4 goto System Restore if %input% ==3 goto System Information if %input% ==2 goto Notepad if %input% ==1 goto DOS Edit :DOS Edit start c:\windows\system32\edit.com pause goto menu :Notepad start c:\windows\system32\notepad.exe pause goto menu :System Information start c:\program files\common files\microsoft shared\msinfo.exe pause goto menu :System Restore start c:\windows\System32\restore\rstrui.exe pause goto menu :Return to Main Menu start c:\batch\menu.bat pause goto menu :Exit exit
ЭТА ПРОБЛЕМА
Я могу успешно выполнить menu.bat. Мне представлены три выбора.
- Сетевые функции
- Панель управления
- аксессуары
Если я выберу "1", я попаду в подменю "Сетевые функции". Отлично.
Если я выберу "3", я попаду в подменю "Аксессуары". Отлично.
Если я выберу «4», я выйду из командной строки Windows. Отлично.
Проблема в том, что если я выберу "2"; это обеспечивает следующую ошибку:
The system cannot find the batch label specified - control
Затем метка диска изменится с c:\ на c:\ batch.
Любопытно, что я МОГУ выполнить файл c:\batch\controlpanel.bat, если введу его в поле «Выполнить». Работает отлично.
Но если я попытаюсь выполнить его через файл menu.bat, он не будет выполнен.
Что тут происходит? Любая помощь приветствуется. Я так близок к завершению этого проекта класса.
Заранее спасибо.