从python脚本运行时无法执行脚本文件(.bat)

从python脚本运行时无法执行脚本文件(.bat),python,batch-file,Python,Batch File,我试图创建一个python脚本,它创建一个.txt和一个.bat文件,然后删除python脚本,然后删除它本身。但是,在脚本创建.txt和.bat文件后,它会出现错误“无法执行脚本文件”,并且.bat不会运行。有什么不对劲吗 我正在使用pyinstaller将所有内容打包成一个名为file.exe的.exe。所有文件都在同一目录中 import subprocess import time ###--- Create .txt ---### text = "hello" f = open("d

我试图创建一个python脚本,它创建一个
.txt
和一个
.bat
文件,然后删除python脚本,然后删除它本身。但是,在脚本创建
.txt
.bat
文件后,它会出现
错误
“无法执行脚本文件”
,并且
.bat
不会运行。有什么不对劲吗

我正在使用
pyinstaller
将所有内容打包成一个名为
file.exe的
.exe
。所有文件都在同一目录中

import subprocess
import time

###--- Create .txt ---###
text = "hello"
f = open("document.txt", 'a+')
f.write(text)
f.close()

###--- Create .bat ---###
myBat = open('C:\\Users\\Me\\Desktop\\destruction.bat','w+')
myBat.write('SLEEP 5 \n') # Wait to make sure file.exe is terminated before continuing
myBat.write('DEL "C:\\Users\\Me\\Desktop\\file.exe" \n')
myBat.write('DEL "%~f0" \n')
myBat.close()

time.sleep(10) # Wait to make sure everything is completed

###--- Run destruction.bat and exit ---###
subprocess.Popen(['cmd.exe','/c',r'C:\Users\Me\Desktop\destruction.bat'], stdin=None, stdout=None, stderr=None, close_fds=True)
exit()

我尝试了使用cmd.exe运行.bat,也尝试了不使用cmd打开bat。

请尝试一下。你不需要做所有的超时,因为这确实运行得相当快,但我还是保留了它们

import subprocess
import time

###--- Create .txt ---###
text = "hello"
f = open("document.txt", 'a+')
f.write(text)
f.close()

###--- Create .bat ---###
myBat = open('C:\\Users\\Me\\Desktop\\destruction.bat','w+')
myBat.write('timeout /t 1 \n') # Wait to make sure file.exe is terminated before continuing
myBat.write('(del /q "C:\\Users\\Me\\Desktop\\file.exe" "%~f0")>nul >2^&1 & exit\n')
myBat.close()

time.sleep(3) # Wait to make sure everything is completed
###--- Run destruction.bat and exit ---###
subprocess.Popen([C:\Users\Me\Desktop\destruction.bat'])
exit()
为了测试的目的,我也会启动脚本

cmd /c start "" python yourpythonfile.py

这样做的目的是什么?“我得到一个意图造成伤害的暗示。”格哈德·巴纳德你的暗示完全可以理解。我正在改变网络安全的职业道路,长期目标是渗透测试。我是一个完全的初学者,阅读很多,但练习不多。我读的书向我介绍了道德黑客的概念、工具和可能性,我正在按照这些书练习这些概念。在阅读了Robert Shimonski的CEH V9:Certified Ethical Hacker Version 9学习指南后,我觉得自己的知识不足以完全理解其中的知识,因此我正在做一些简单得多的练习,比如thisOk。我建议您考虑下载KALI Linux虚拟机并在Oracle虚拟箱上运行。它有大量用于测试的内置工具。但是为了帮助解决当前问题,您可以按照python脚本创建的批处理文件代码发布吗?@Gerhard Barnad感谢您的回答。我正在虚拟机上运行Kali Linux,并在那里试用这些工具。bat文件与python代码一样有3行,一行接一行,如果我手动执行,它就可以正常工作。只有python脚本不想执行它。再次感谢您的回答!我尝试了您的代码,但它返回subprocess.Popen行的截断错误,我认为这是因为它在开头缺少“r”。我添加了“r”并按照建议通过cmd运行它,但是它返回destromission.bat的“FileNotFoundError:[WinError 2]系统找不到指定的文件”。我也尝试过不使用“r”和“\\”,但还是出现了找不到文件的情况。我假设这对您有效,所以它一定不是代码,而是与系统相关的错误。我只是想练习其他的东西。谢谢你抽出时间!