<ul>
<li><p>要执行<em>单个</em>脚本:</p>
<pre><code>powershell -c "pythonw 'C:\Users\pc2\script1.py'"
</code></pre></li>
</ul>
<p><sup>注意:只有当文件路径包含shell元字符(如空格)时,才需要在文件路径周围加上<code>'...'</code>。<br/>
或者,
从<code>cmd.exe</code>(批处理文件)调用时使用<code>""...""</code>,从PowerShell调用时使用<code>`"...`"
</code>。</sup></p>
<ul>
<li><p>要执行多个<em>脚本,请按顺序执行<em>:</p>
<pre><code>powershell -c "& { $Args | % { pythonw $_ } } 'C:\Users\pc2\script1.py' 'C:\Users\pc2\script2.py'"
</code></pre></li>
</ul>
<p><sup>注意:这只在从<code>cmd.exe</code>(批处理文件)调用时有效。<br/>
(在PowerShell中,只需直接执行<code>"..."</code>中的内容)</sup></p>
<hr/>
<p>至于<strong>您尝试了什么</strong>,只关注PowerShell最终看到了什么命令字符串:</p>
<ul>
<li><code>& 'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe C:\Users\pc2\script.py'</code></li>
</ul>
<p>问题是您将整个命令行传递给<code>&</code>,而它只需要<em>可执行的</em>名称;<br/>
<code>C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe C:\Users\pc2\script.py</code>显然不是有效的可执行文件名/路径。在</p>
<ul>
<li><code>'pythonw C:\Users\pc2\script.py'</code></li>
</ul>
<p>由于包含在<code>'...'</code>中,这是一个<em>字符串文本</em>,PowerShell只是<em>输出</em>,从未执行过<em>命令</em>。在</p>
<ul>
<li><code>& {&'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe ' C:\Users\pc2\script.py}</code></li>
</ul>
<p>由于您使用的是一个<em>脚本块</em>(<code>{ ... }</code>),所以您需要将<code>C:\Users\pc2\script.py</code>作为一个<em>参数传递给</em>,因此您必须在块内通过自动<code>$Args</code>变量或通过<code>param()</code>块中定义的参数来引用它。<br/>
(顺便说一句:您的文件路径有一个多余的尾随空格,但是PowerShell似乎忽略了这一点。)</p>