【问题标题】:What needs to be added需要添加什么
【发布时间】:2016-12-27 19:36:54
【问题描述】:

我有一个简单的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 jacobsnyderatoneal@gmail.com"
                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 jacobsnyderatoneal@gmail.com"
                                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()

【问题讨论】:

  • 这个问题非常模糊,你给了我们一大堆代码来阅读。为什么你觉得少了点什么?你期望什么行为,你看到了什么?
  • 我投票结束这个问题,因为它不是关于编程的问题。

标签: python python-2.7 operating-system dos


【解决方案1】:

Jacob,在 cmd 提示符下运行 help,您将获得大量可用命令供您实施

C:\>帮助 有关特定命令的更多信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联。 ATTRIB 显示或更改文件属性。 BREAK 设置或清除扩展的 CTRL+C 检查。 BCDEDIT 在引导数据库中设置属性以控制引导加载。 CACLS 显示或修改文件的访问控制列表 (ACL)。 CALL 从另一个批处理程序中调用。 CD 显示或更改当前目录的名称。 CHCP 显示或设置活动代码页号。 CHDIR 显示或更改当前目录的名称。 CHKDSK 检查磁盘并显示状态报告。 CHKNTFS 显示或修改启动时对磁盘的检查。 CLS 清除屏幕。 CMD 启动 Windows 命令解释器的新实例。 COLOR 设置默认的控制台前景色和背景色。 COMP 比较两个文件或文件集的内容。 COMPACT 显示或更改 NTFS 分区上文件的压缩。 CONVERT 将 FAT 卷转换为 NTFS。您无法转换 当前驱动。 COPY 将一个或多个文件复制到另一个位置。 DATE 显示或设置日期。 DEL 删除一个或多个文件。 DIR 显示目录中的文件和子目录的列表。 DISKPART 显示或配置磁盘分区属性。 DOSKEY 编辑命令行、调用 Windows 命令和 创建宏。 DRIVERQUERY 显示当前设备驱动程序状态和属性。 ECHO 显示消息,或打开或关闭命令回显。 ENDLOCAL 结束批处理文件中环境更改的本地化。 ERASE 删除一个或多个文件。 EXIT 退出 CMD.EXE 程序(命令解释器)。 FC 比较两个文件或文件集,并显示 他们之间的差异。 FIND 在一个或多个文件中搜索文本字符串。 FINDSTR 在文件中搜索字符串。 FOR 为一组文件中的每个文件运行指定的命令。 FORMAT 格式化磁盘以供 Windows 使用。 FSUTIL 显示或配置文件系统属性。 FTYPE 显示或修改文件扩展名中使用的文件类型 协会。 GOTO 将 Windows 命令解释器定向到 一个批处理程序。 GPRESULT 显示机器或用户的组策略信息。 GRAFTABL 使 Windows 能够在 图形模式。 HELP 提供 Windows 命令的帮助信息。 ICACLS 显示、修改、备份或恢复文件的 ACL 和 目录。 IF 在批处理程序中执行条件处理。 LABEL 创建、更改或删除磁盘的卷标。 MD 创建一个目录。 MKDIR 创建一个目录。 MKLINK 创建符号链接和硬链接 MODE 配置系统设备。 MORE 一次显示输出一屏。 MOVE 将一个或多个文件从一个目录移动到另一个目录 目录。 OPENFILES 显示远程用户为文件共享打开的文件。 PATH 显示或设置可执行文件的搜索路径。 PAUSE 暂停批处理文件并显示消息。 POPD 恢复当前目录保存的先前值 推。 PRINT 打印文本文件。 PROMPT 更改 Windows 命令提示符。 PUSHD 保存当前目录然后更改它。 RD 删除目录。 RECOVER 从损坏或有缺陷的磁盘中恢复可读信息。 REM 在批处理文件或 CONFIG.SYS 中记录 cmets(备注)。 REN 重命名一个或多个文件。 RENAME 重命名一个或多个文件。 REPLACE 替换文件。 RMDIR 删除目录。 ROBOCOPY 用于复制文件和目录树的高级实用程序 SET 显示、设置或删除 Windows 环境变量。 SETLOCAL 开始对批处理文件中的环境更改进行本地化。 SC 显示或配置服务(后台进程)。 SCHTASKS 安排命令和程序在计算机上运行。 SHIFT 移动批处理文件中可替换参数的位置。 SHUTDOWN 允许正确的本地或远程关闭机器。 SORT 对输入进行排序。 START 启动一个单独的窗口以运行指定的程序或命令。 SUBST 将路径与驱动器号相关联。 SYSTEMINFO 显示机器特定的属性和配置。 TASKLIST 显示所有当前正在运行的任务,包括服务。 TASKKILL 杀死或停止正在运行的进程或应用程序。 TIME 显示或设置系统时间。 TITLE 设置 CMD.EXE 会话的窗口标题。 TREE 以图形方式显示驱动器的目录结构或 小路。 TYPE 显示文本文件的内容。 VER 显示 Windows 版本。 VERIFY 告诉 Windows 是否验证您的文件是否已写入 正确到磁盘。 VOL 显示磁盘卷标和序列号。 XCOPY 复制文件和目录树。 WMIC 在交互式命令外壳中显示 WMI 信息。 有关工具的更多信息,请参阅联机帮助中的命令行参考。 C:\>

【讨论】:

  • 感谢您的列表,我认为这正是我正在寻找的。​​span>
猜你喜欢
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多