小编Had*_*rah的帖子

无需额外的外部软件即可将.bat转换为.exe(创建SFX)

按照与本指南相同的步骤操作.我试图从bat转换为exe而不安装任何新的软件,如Bat to Exe Converter.我使用这种方法的原因是因为我工作场所中的所有机器都安装了7zip并且可以使用它,但我不允许使用主服务器上不存在的外部软件使脚本工作,以便在任何机器上兼容公司.

我有以下TEST.bat:

ECHO This is a Test bat to exe
pause
Run Code Online (Sandbox Code Playgroud)

config.txt:

;!@Install@!UTF-8! 
RunProgram="TEST.bat" 
;!@InstallEnd@! 
Run Code Online (Sandbox Code Playgroud)

然后我调用以下命令行(在另一个.bat中):

COPY /B "%PathTo7Zip%\7zCon.sfx" + %Config% + %Source7ZFile% %OutputFile%
Run Code Online (Sandbox Code Playgroud)

%PathTo7Zip%7zCon.sfx 的目录%Config%是上面的config.txt文件 %Source7ZFile%是我的.7z存档,并且%OutputFile%是我的输出TEST.exe文件,应该根据指南的作者调用它时应该运行bat文件.但是,调用TEST.exe触发器解压缩.7z存档(这是预期的),然后退出而不运行TEST.bat.

然而,作者解释说:

结论:

请务必注意,虽然生成的文件与源BAT文件运行完全相同,但这不是真正的批处理到可执行转换.生成的文件是EXE,但它旨在用于自解压安装程序.当您执行生成的EXE文件时,该过程如下所示:

  1. EXE文件的内容将解压缩到临时目录.
  2. 读取脚本生成的配置文件.
  3. EXE文件中包含的批处理文件在新的命令窗口中执行.
  4. 完成后,将删除临时文件.

windows 7zip batch-file

9
推荐指数
1
解决办法
3万
查看次数

PowerShell 上的彩色文本输出

我使用在这个问题“Print in terminal with colours?”中找到的以下颜色类

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

print(bcolors.FAIL + "some error" + bcolors.ENDC)
Run Code Online (Sandbox Code Playgroud)

当我在我的 python 脚本编辑器中运行它时,我得到正确的红色错误颜色的输出:

some error
[Finished in 18.782s]
Run Code Online (Sandbox Code Playgroud)

但是,当我从命令提示符运行或使用 powershell(我预期的控制台输出)时,我得到以下输出:

[91msome 错误[0m

(每个“[”前都有箭头,但每次按保存时都不会显示)

更新:

这是输出的捕获:

在此处输入图片说明

这似乎是一种非常有吸引力的方法,因为我不必下载或导入任何新模块,只需将它包含在我的脚本中的几行中即可。这被选为最佳答案,但我无法让它工作,因为它似乎解释\033为箭头符号的一些 ASCII。

python powershell

5
推荐指数
1
解决办法
2541
查看次数

标签 统计

7zip ×1

batch-file ×1

powershell ×1

python ×1

windows ×1