gpt4 book ai didi

windows - 从 .bat 脚本运行 Powershell 命令不起作用,但是当我直接在命令行中键入它时它起作用

转载 作者:可可西里 更新时间:2023-11-01 11:24:45 33 4
gpt4 key购买 nike

Powershell -Command "cat .\tmp.txt | %{$_ -replace '\D', ''}"

为什么从 .bat 脚本运行上述 Powershell 命令不起作用?只有当我直接在命令行中输入它时它才有效...

从 .bat 脚本运行会产生以下消息:

    Expressions are only allowed as the first element of a pipeline.
At line:1 char:39
+ cat .\tmp.txt | {$_ -replace '\D', ''} <<<<
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline

最佳答案

powershell/? 提供此帮助文本(在下方进行了修剪以仅显示相关文本)。

-Command
...
To write a string that runs a Windows PowerShell command, use the format:
"& {<command>}"
where the quotation marks indicate a string and the invoke operator (&)
causes the command to be executed.

因此您的批处理文件 powrshell 行需要读取:

powershell -Command "&{ cat .\tmp.txt | ForEach-Object {$_ -replace '\D', ''} }"

(注意包裹在命令周围的额外花括号,% 被替换为 ForEach-Object)

关于windows - 从 .bat 脚本运行 Powershell 命令不起作用,但是当我直接在命令行中键入它时它起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41893219/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com