Powershell在运行批处理文件时无法识别合法命令?

时间:2015-02-24 08:04:32

标签: windows powershell batch-file scripting cmd

由于我刚刚学习Powershell,我想编写一个简单的批处理脚本,它可以计算文本文件中的行数,并在最后将其打印到控制台窗口。我写了

Clear-Host
$counter=0
for /f %%j in (someText.txt) do (
    $counter++
)
$counter

我在Powershell中运行脚本并收到以下错误:
'Clear-Host'未被识别为内部或外部命令, 可操作程序或批处理文件 '$ counter'不被视为内部或外部命令, 可操作程序或批处理文件 '$ counter ++'不被识别为内部或外部命令, 可操作程序或批处理文件。

这对我来说非常迷惑,因为当我在Powershell中输入“$ counter = 0”和“$ counter ++”等单独命令时,没有错误发生并且我得到了预期的行为:我初始化一个计数器变量,然后递增一个接一个。

另外,如何在Powershell中输入整个循环(或其他一些多行代码构造)?...像for /f %%j in (someText.txt) do ($counter++)这样的单行输入它给了我

At line:1 char:4
+ for / f %% j in(someText.txt)do(
+〜
缺少开头'('关键字后''为' 在行:1 char:33
+ for / f %% j in(someText.txt)do(
+〜
在'(' 在行:1 char:33
+ for / f %% j in(someText.txt)do(
+〜
在表达式中缺少关闭')'     + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException     + FullyQualifiedErrorId:MissingOpenParenthesisAfterKeyword

我也尝试过使用cmd.exe而不是Powershell - 我得到了上面描述的所有相同的问题。 知道如何让我的脚本做到它应该做的事情吗?

0 个答案:

没有答案