所以我在我编写的Python程序中加入了一些值(它的作用是无关紧要的):
E:\用户\我\桌面\的Python> idtohex.py
输入ID:213467
DB 41 03
很好,它可以正常工作。现在,此时我不小心将此字符串复制到我的剪贴板:
[此处为新线]
E:\用户\我\桌面\的Python> idtohex.py
从我最初在命令提示符下启动程序开始。
现在,由于新行,我的程序崩溃,因为它无法处理输入(oops):
ValueError:基数为10的int()的无效文字:''
由于此错误,我现在返回到命令提示符,并输入剪贴板中的下一行,它正在尝试运行此命令:
E:\用户\我\桌面\的Python> idtohex.py
命令提示符给了我这个错误,所以我认为这不是什么大问题,只是继续使用它:
'E:\ Users \ Me \ Desktop \ Python'无法识别为内部或外部命令,
可操作程序或批处理文件。
现在我尝试再次运行该程序,我的整个程序完全是空的。 Overwritten. 0-bytes on disk。因此,由于这个简单的错误,我以某种方式覆盖了我的整个程序,无法将其取回。
地狱 如何在Windows命令提示符下发生这种情况?
答案 0 :(得分:5)
在运行命令之前,cmd.exe会设置其子进程的标准句柄以继承。 >
运算符将文件描述符重定向到为输出打开的文件,并将现有文件截断为0字节。它默认为文件描述符1(标准输出或标准输出)。由于唯一的输出是文件描述符2(标准错误,stderr)上的错误消息,因此生成的文件为空。如果您运行E:\Users\Me\Desktop\Python 2>idtohex.py
(在这种情况下需要空间进行解析),则该文件将被错误消息覆盖。