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

感謝您的名單,我認爲這正是我要找的。 –

相關問題