相关疑难解决方法(0)

批处理脚本 - 带括号的“Where”这个词的回声问题

不久前,我询问了Batch Script Redirection Syntax,并得到了很好的回答。我在批处理脚本中()更频繁地使用括号方法echo并重定向到文件等。

我遇到了一个奇怪的问题,它似乎Where无法将echo单词从字面上理解为该单词,而且它似乎Where被解释为正在调用的命令。


为了让这个例子简单,我将脚本逻辑简化为一个更简单的版本,但PowerShell逻辑echo可能比这复杂得多。

脚本示例

@ECHO ON

(
    ECHO [System.IO.DriveInfo]::GetDrives() ^| Where {$_.Name -like "C:\"}
)>> Outfile.txt

PAUSE
Run Code Online (Sandbox Code Playgroud)

错误

INFO: Could not find files for the given pattern(s).
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


我所做的

我对此进行了一些故障排除并进行了一些快速研究,但找不到简单的答案。由于我没有问过很多关于SuperUser 的问题,我认为这可能是一个很好的问题。

我特别尝试的一件事是将变量设置为Where(ie SET w=Where)的字符串值,然后在括号中的echo命令中我引用了该变量 (ie %w%) 来代替单词,Where但结果仍然是相同的错误。

我也玩了一点,SETLOCAL ENABLEDELAYEDEXPANSION但没什么区别。

@ECHO ON
SET w=Where
(
    ECHO [System.IO.DriveInfo]::GetDrives() ^| %w% {$_.Name -like …
Run Code Online (Sandbox Code Playgroud)

batch-file

7
推荐指数
1
解决办法
308
查看次数

标签 统计

batch-file ×1