如何使用Python脚本为批处理文件提供输入?

如何使用Python脚本为批处理文件提供输入?,第1张

概述假设我有一个批处理文件,它要求我输入我的名字.我把我的名字输入.这是手动方式. 但我想用Python尝试一下.是否有可能在Python脚本中创建一个变量并将我的名字放在变量中并在它要求输入时将该变量传递给bat文件? 我的bat文件的第一步是问我的名字.询问名称批处理文件是出于测试目的.我的主批处理文件有以下代码: @ECHO OFF:choiceset /P c=Do you want t 假设我有一个批处理文件,它要求我输入我的名字.我把我的名字输入.这是手动方式.

但我想用Python尝试一下.是否有可能在Python脚本中创建一个变量并将我的名字放在变量中并在它要求输入时将该变量传递给bat文件?

我的bat文件的第一步是问我的名字.询问名称批处理文件是出于测试目的.我的主批处理文件有以下代码:

@ECHO OFF:choiceset /P c=Do you want to continue [Y/N]?if /I "%c%" EQU "Y" goto :yesif /I "%c%" EQU "N" goto :nogoto :choice:yes"scripts\enter.py" yesgoto :continue:no"scripts\kick_out.py" no:continuepause exit

所以,我希望这会有所帮助.我想通过大约2个输入.首先是Y和其他当它调用enter.py时它会询问我的登录详细信息.我的用户名和密码.所以,我需要做3个输入.我怎样才能做到这一点?

解决方法 这是可行的:我用它来注入使用不可打印的ascii字符(如空字节)的攻击字符串.

使用Python 3的示例:

inject_string.py

import ctypesimport timeimport subprocessimport binasciiif __name__ =="__main__":    response = "Y"    p = subprocess.Popen("echo.bat",stdin = subprocess.PIPE)    time.sleep(2)    p.stdin.write(bytes(response,'ascii')) #Answer the question    print("injected string :",response)

echo.bat

@ECHO OFF:choiceset /P c=Do you want to continue [Y/N]?if /I "%c%" EQU "Y" goto :yesif /I "%c%" EQU "N" goto :nogoto :choice:yesecho "User has typed yes"goto :continue:noecho "User has typed no":continuepause

Output

python inject_string.pyDo you want to continue [Y/N]?injected string : Y"User has typed yes"
总结

以上是内存溢出为你收集整理的如何使用Python脚本为批处理文件提供输入?全部内容,希望文章能够帮你解决如何使用Python脚本为批处理文件提供输入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存