You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中执行py命令后如何不创建文件直接运行后续Python代码

问题原因

你当前的写法存在两个层级的执行逻辑错误:

  1. PowerShell会按行依次执行函数内的命令:第一行py会直接启动Python交互解释器,进程进入阻塞状态,直到你手动退出Python后才会执行下一行代码,后续的print语句根本不会传递给Python运行。
  2. PowerShell自身也内置了print命令,作用是向系统打印设备输出内容,你退出Python后PowerShell执行这行原生命令时找不到对应打印设备,就会抛出Unable to initialize device PRN的报错。

解决方案

不需要创建额外文件,直接通过Python的内置参数传递代码即可,有两种常用写法:

方法1:使用-c参数传递代码

Python的-c参数支持直接传入字符串形式的代码执行,单/多行代码都可以适配:

  • 单行代码写法:
function test {
    py -c "print('hello world')"
}
  • 多行代码写法(用PowerShell的多行 heredoc 字符串包裹即可):
function test {
    py -c @"
a = 10
b = 20
print(f'计算结果:{a + b}')
print('hello world')
"@
}

如果你的Python代码中包含$符号,不想被PowerShell解析为变量,可以把包裹符换成单引号格式的@' '@,不会触发变量解析。

方法2:通过管道传递代码给标准输入

如果代码量较大,也可以把代码通过管道传给Python,配合-参数让Python从标准输入读取代码执行:

function test {
@'
a = 10
b = 20
print(f'计算结果:{a + b}')
print('hello world')
'@ | py -
}

内容的提问来源于stack exchange,提问作者Tuor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:06:10