回复 2# CrLf
这里的奎因代码, 要以批处理文件的方式运行, 不能粘贴到命令行去运行, 那样得不到和自身一样的输出
下面的代码可以生成这个奎因代码, 显示它的内容, 运行它输出结果, 最后将奎因代码的 输出文件 和 奎因代码 自身进行比较, 检测 是否完全一致: | @echo off & endlocal | | set "Quine=BatchQuine.bat" | | set "Output=Output.bin" | | | | call :genQuine | | echo TYPE %Quine%: | | type %Quine% | | echo. | | pause > nul | | echo %Quine% OUTPUT: | | call %Quine% | | pause > nul | | echo. | | echo TEST whether the output is SAME to the source code: | | call %Quine% > %Output% | | echo fc /b %Output% %Quine% | | fc /b %Output% %Quine% | | pause > nul | | exit | | | | :genQuine | | > %Quine% ( | | echo Set "T=Echo Set "T=!T!"&Call Echo Set E=!E!E!E!!E!E!E!&Echo Cmd/V:On/C"!E!T!E!"" | | echo Set E=%%%% | | echo Cmd/V:On/C"%%T%%" | | ) | | exit /bCOPY |
|