2016-08-20 101 views
-4

我有一个简单的DOS克隆,我称之为JDOS或Jacob的DOS,我想知道它缺少什么?需要添加什么

如果你正在尝试它,有一个命令没有列出(故意使用)admin。密码是空白的,所以只需按回车即可。

我是一个Python初学者程序员,所以请让它成为一个挑战,但不要太难。

这里的脚本:

def jdos1(): 
    print " Boot JDOS.exe?" 
    answer = raw_input(" [y] or [n]").lower() 
    if answer == "y" or answer == "[y]": 
     import time 
     time.sleep(1) 
     print " Welcome to JDOS" 
     time.sleep(1) 
     print " Type cmds for a list of all avalible commands" 
     def jdos2(): 
      cmd = raw_input().lower() 
      if cmd == "exit": 
       print " Exiting JDOS" 
       time.sleep(1) 
      elif cmd == "info": 
       print "JDOS Script 1.4.0. Created by Jacob Snyder [email protected]" 
       jdos2() 
      elif cmd == "ver": 
       print "JDOS 1.4.0" 
       jdos2() 
      elif cmd == "upd": 
       print "" 
       jdos2() 
      elif cmd =="admin": 
       password = raw_input(" Please enter your admin password.") 
       def admin(): 
        if password == "".lower(): 
         print " rebooting in admin mode" 
         time.sleep(1) 
         print " Welcome to JDOS-Admin" 
         def admin2(): 
          cmd = raw_input().lower() 
          if cmd == "exit": 
           print " Exiting JDOS-Admin" 
           time.sleep(3) 
          elif cmd == "password": 
           print " Your password is, %s" % (password) 
           admin2() 
          elif cmd == "admin": 
           print " Already booted in admin mode" 
           admin2() 
          elif cmd == "format": 
           print " Formatting D:" 
           time.sleep(3) 
          elif cmd == "ver": 
           print " JDOS 1.4.0" 
           admin2() 
          elif cmd == "info": 
           print " JDOS-Admin Script 1.4.0. Created by Jacob Snyder [email protected]" 
           admin2() 
          elif cmd == "upd": 
           print "" 
           admin2() 
          elif cmd == "date": 
           from datetime import datetime 
           now = datetime.now() 
           print ' %s/%s/%s' % (now.month, now.day, now.year) 
           admin2() 
          elif cmd == "add": 
           inp1 = float(raw_input(" Enter 1st integer:")) 
           inp2 = float(raw_input(" Enter 2nd integer:")) 
           oup1 = inp1 + inp2 
           print " %s+%s=%s" % (inp1, inp2, oup1) 
           admin2() 
          elif cmd == "subtract": 
           inp1 = float(raw_input(" Enter 1st integer:")) 
           inp2 = float(raw_input(" Enter 2nd integer:")) 
           oup1 = inp1 - inp2 
           print " %s-%s=%s" % (inp1, inp2, oup1) 
           admin2() 
          elif cmd == "multiply": 
           inp1 = float(raw_input(" Enter 1st integer:")) 
           inp2 = float(raw_input(" Enter 2nd integer:")) 
           oup1 = inp1 * inp2 
           print " %sx%s=%s" % (inp1, inp2, oup1) 
           admin2() 
          elif cmd == "divide": 
           inp1 = float(raw_input(" Enter 1st integer:")) 
           inp2 = float(raw_input(" Enter 2nd integer:")) 
           oup1 = inp1/inp2 
           print " %s/%s=%s" % (inp1, inp2, oup1) 
           admin2() 
          elif cmd == "cmds" or cmd == "cmd": 
           print " cmds, date, add, subtract, multiply, divide, password, admin, format, ver, info, upd, exit" 
           admin2() 
          else: 
           print " Invalid command" 
           admin2() 
         admin2() 
        elif password == "cancel": 
         print " Canceling" 
        else: 
         print " Incorrect password" 
       admin() 
      elif cmd == "secret": 
       print " Congrats on finding the secret, Heres a cookie!              . ____              ./- . \              |, - * |              .\____/" 
       jdos2() 
      elif cmd == "date": 
       from datetime import datetime 
       now = datetime.now() 
       print ' %s/%s/%s' % (now.month, now.day, now.year) 
       jdos2() 
      elif cmd == "add": 
       inp1 = float(raw_input(" Enter 1st integer:")) 
       inp2 = float(raw_input(" Enter 2nd integer:")) 
       oup1 = inp1 + inp2 
       print "%s+%s=%s" % (inp1, inp2, oup1) 
       jdos2() 
      elif cmd == "subtract": 
       inp1 = float(raw_input(" Enter 1st integer:")) 
       inp2 = float(raw_input(" Enter 2nd integer:")) 
       oup1 = inp1 - inp2 
       print "%s-%s=%s" % (inp1, inp2, oup1) 
       jdos2() 
      elif cmd == "multiply": 
       inp1 = float(raw_input(" Enter 1st integer:")) 
       inp2 = float(raw_input(" Enter 2nd integer:")) 
       oup1 = inp1 * inp2 
       jdos2() 
      elif cmd == "divide": 
       inp1 = float(raw_input(" Enter 1st integer:")) 
       inp2 = float(raw_input(" Enter 2nd integer:")) 
       oup1 = inp1/inp2 
       print "%s/%s=%s" % (inp1, inp2, oup1) 
       jdos2() 
      elif cmd == "cmds" or cmd == "cmd": 
       print " cmds, date, add, subtract, multiply, divide, info, upd, ver, exit" 
       jdos2() 
      else: 
       print " Invalid command" 
       jdos2() 
     jdos2() 
    elif answer == "n": 
     print "" 
    else: 
     print " Invalid command" 
     jdos1() 

jdos1() 
+2

这个问题是非常模糊的,你给了我们很多的代码来阅读。你为什么觉得缺少一些东西?你期望什么行为?你看到了什么? – jcolemang

+1

我投票结束这个问题作为题外话,因为它不是一个关于编程的问题。 – smarx

回答

0

雅各布,在命令提示符运行help,你会得到一个巨大的可用命令的列表,为您实现

 
C:\>help 
For more information on a specific command, type HELP command-name 
ASSOC   Displays or modifies file extension associations. 
ATTRIB   Displays or changes file attributes. 
BREAK   Sets or clears extended CTRL+C checking. 
BCDEDIT  Sets properties in boot database to control boot loading. 
CACLS   Displays or modifies access control lists (ACLs) of files. 
CALL   Calls one batch program from another. 
CD    Displays the name of or changes the current directory. 
CHCP   Displays or sets the active code page number. 
CHDIR   Displays the name of or changes the current directory. 
CHKDSK   Checks a disk and displays a status report. 
CHKNTFS  Displays or modifies the checking of disk at boot time. 
CLS   Clears the screen. 
CMD   Starts a new instance of the Windows command interpreter. 
COLOR   Sets the default console foreground and background colors. 
COMP   Compares the contents of two files or sets of files. 
COMPACT  Displays or alters the compression of files on NTFS partitions. 
CONVERT  Converts FAT volumes to NTFS. You cannot convert the 
       current drive. 
COPY   Copies one or more files to another location. 
DATE   Displays or sets the date. 
DEL   Deletes one or more files. 
DIR   Displays a list of files and subdirectories in a directory. 
DISKPART  Displays or configures Disk Partition properties. 
DOSKEY   Edits command lines, recalls Windows commands, and 
       creates macros. 
DRIVERQUERY Displays current device driver status and properties. 
ECHO   Displays messages, or turns command echoing on or off. 
ENDLOCAL  Ends localization of environment changes in a batch file. 
ERASE   Deletes one or more files. 
EXIT   Quits the CMD.EXE program (command interpreter). 
FC    Compares two files or sets of files, and displays the 
       differences between them. 
FIND   Searches for a text string in a file or files. 
FINDSTR  Searches for strings in files. 
FOR   Runs a specified command for each file in a set of files. 
FORMAT   Formats a disk for use with Windows. 
FSUTIL   Displays or configures the file system properties. 
FTYPE   Displays or modifies file types used in file extension 
       associations. 
GOTO   Directs the Windows command interpreter to a labeled line in 
       a batch program. 
GPRESULT  Displays Group Policy information for machine or user. 
GRAFTABL  Enables Windows to display an extended character set in 
       graphics mode. 
HELP   Provides Help information for Windows commands. 
ICACLS   Display, modify, backup, or restore ACLs for files and 
       directories. 
IF    Performs conditional processing in batch programs. 
LABEL   Creates, changes, or deletes the volume label of a disk. 
MD    Creates a directory. 
MKDIR   Creates a directory. 
MKLINK   Creates Symbolic Links and Hard Links 
MODE   Configures a system device. 
MORE   Displays output one screen at a time. 
MOVE   Moves one or more files from one directory to another 
       directory. 
OPENFILES  Displays files opened by remote users for a file share. 
PATH   Displays or sets a search path for executable files. 
PAUSE   Suspends processing of a batch file and displays a message. 
POPD   Restores the previous value of the current directory saved by 
       PUSHD. 
PRINT   Prints a text file. 
PROMPT   Changes the Windows command prompt. 
PUSHD   Saves the current directory then changes it. 
RD    Removes a directory. 
RECOVER  Recovers readable information from a bad or defective disk. 
REM   Records comments (remarks) in batch files or CONFIG.SYS. 
REN   Renames a file or files. 
RENAME   Renames a file or files. 
REPLACE  Replaces files. 
RMDIR   Removes a directory. 
ROBOCOPY  Advanced utility to copy files and directory trees 
SET   Displays, sets, or removes Windows environment variables. 
SETLOCAL  Begins localization of environment changes in a batch file. 
SC    Displays or configures services (background processes). 
SCHTASKS  Schedules commands and programs to run on a computer. 
SHIFT   Shifts the position of replaceable parameters in batch files. 
SHUTDOWN  Allows proper local or remote shutdown of machine. 
SORT   Sorts input. 
START   Starts a separate window to run a specified program or command. 
SUBST   Associates a path with a drive letter. 
SYSTEMINFO  Displays machine specific properties and configuration. 
TASKLIST  Displays all currently running tasks including services. 
TASKKILL  Kill or stop a running process or application. 
TIME   Displays or sets the system time. 
TITLE   Sets the window title for a CMD.EXE session. 
TREE   Graphically displays the directory structure of a drive or 
       path. 
TYPE   Displays the contents of a text file. 
VER   Displays the Windows version. 
VERIFY   Tells Windows whether to verify that your files are written 
       correctly to a disk. 
VOL   Displays a disk volume label and serial number. 
XCOPY   Copies files and directory trees. 
WMIC   Displays WMI information inside interactive command shell. 

For more information on tools see the command-line reference in the online help. 

C:\> 
+0

感谢您的名单,我认为这正是我要找的。 –

相关问题