Windows环境下如何从标准输出运行GitHub发布的EXE文件(替代Bash方式)
Windows环境下如何从标准输出运行GitHub发布的EXE文件(替代Bash方式)
我明白你想要实现的效果——在Windows上复刻Linux里curl -o- ... | bash的便捷性,直接下载自己GitHub项目发布的EXE文件并立即运行,不用手动保存再启动对吧?下面给你几个实用的方案:
方法一:PowerShell(推荐,Windows 10/11默认预装)
PowerShell是Windows现在的首选命令行工具,语法灵活且功能强大。你可以用下面的命令实现需求:
Invoke-WebRequest -Uri "https://github.com/USERNAME/PROJECT/releases/latest/download/TORUN.exe" -OutFile "$env:TEMP\TORUN.exe"; & "$env:TEMP\TORUN.exe"
- 这段命令先把EXE文件下载到系统临时文件夹(
$env:TEMP指向的路径),避免占用固定存储; - 用
&符号调用下载好的EXE文件直接运行; - 如果想在程序运行结束后自动清理临时文件,可以在命令末尾追加:
; Remove-Item "$env:TEMP\TORUN.exe"(注意:如果你的程序是常驻后台类型,这一步可能会失败,需要手动删除)。
方法二:CMD命令行(兼容旧版Windows)
如果你习惯用传统CMD,也可以借助系统自带的certutil工具来实现(Windows 7及以上都支持):
certutil -urlcache -split -f "https://github.com/USERNAME/PROJECT/releases/latest/download/TORUN.exe" "%TEMP%\TORUN.exe" && "%TEMP%\TORUN.exe"
-urlcache -split -f参数用于强制下载文件并忽略缓存;&&表示只有下载成功后才执行后面的运行命令;- 同样,要自动清理临时文件可以追加:
&& del "%TEMP%\TORUN.exe"。
为什么不能像Bash那样直接管道执行?
和Linux的Shell脚本不同,Windows的EXE程序无法直接从标准输入读取并运行,必须先将文件保存到本地磁盘(哪怕是临时目录)才能执行,这是两种系统程序运行机制的差异,所以咱们只能先下载再启动。
备注:内容来源于stack exchange,提问作者ty246




