我想製作一個真正的.bat到.exe轉換器。我目前正試圖創建一個腳本女巫將cmd命令注入到一個cmd進程/環境中。這裏是我有這麼票價:Python多線cmd條目在一個環境中
#!/usr/bin/python3
from os import system as cmd
def ce(*a):
a = list(a)
for b in range(0, len(a)):
cmd(a[b])
# I need each entry of cmd(a[b]) to run in the same cmd environment and therefore
# do what a normal .bat/.cmd program would.
return a
cd1 = ['@echo off', 'set hw=Hi', 'echo %hw%', 'set hw', 'pause']
if ce(*cd1) != cd1:
print('Error')
cmd('pause')
quit()
它所做的就是通過「CD1」這些命令進行迭代,並執行它們一個接一個。一旦我將'hw'建立爲'Hi',變量就消失了。不僅如此,而不是說「ECHO關閉」,它顯示「%hw%」。如果有人可以幫助我,請這樣做。
這是一個命令列表。我的項目的祕訣是能夠運行任何.bat可執行文件,而無需將這些命令放在真實的.bat文件中,因爲這樣人們就可以看到批處理代碼。 – AidanCodeX 2014-10-08 14:00:01
@AidanCodeX:你只需要帶任何bat文件,用&&連接所有行,用!x代替任何%x%!並在行的開頭放置「@SETLOCAL EnableDelayedExpansion」。然後只需執行整行。這將適用於任何bat文件。 – MichaelS 2014-10-09 09:25:36
這沒有奏效。我試過:b ='@echo off \ n:a \ ncls \ necho Hello World!\ n暫不使用\ n \ n \ n'.replace('\\ n','&&'),然後os.system(b),它關閉並返回1. – AidanCodeX 2014-10-11 19:23:54