2

我是 PowerShell 的新手,但我想使用它,因为没有一种简单的方法可以在 Windows 批处理中获取字符串的长度。

我需要在 PowerShell 中编写一段代码,遍历 .txt 文件中的每一行并确定该行的字符长度。如果字符长度超过 250 则....等等。

....etc 部分目前并不重要:)

在 Windows 批处理中,我会这样写:

FOR /F %%A IN ("C:\TestFile.txt") DO (
    SET LINE=%%A
    If LINE > 250 characters then (        ' This line is made up
    ....etc
    )

我该怎么做?

4

3 回答 3

6

以下将做你想要的:

$data = Get-Content "C:\TestFile.txt"
foreach($line in $data)
{
   if ($line.Length -gt 250) {
       Write-Host "A match"
   }
}
于 2012-09-20T21:19:14.927 回答
1

试试这个:

:: Not fully tested:
for /f "delims=" %%s in (C:\TestFile.txt) do (
   set "x=%%s" & set /A y+=1
   setlocal enabledelayedexpansion
   for /f "skip=1 delims=:" %%i in ('"(set x&echo()|findstr /o ".*""') do set/a n=%%i-4
   if !n! gtr 250 echo Line !y! Length !n!
   endlocal
)
于 2012-09-21T06:04:09.330 回答
1

今天正在寻找这个并在这里找到了一个优雅的解决方案:https ://softwarerecs.stackexchange.com/questions/38934/finding-the-longest-line-of-a-document/38936

GC "c:\folder\file.txt" | Measure -Property length -Maximum | Select Maximum 
GC "c:\folder\file.txt" | Sort -Property length | Select -last 1

重要提示:来自上面链接的 Pimp Juice IT 归功于 Pimp Juice IT,我只是复制/粘贴 :)

于 2019-04-17T09:39:55.840 回答