Batch file 计算文件中的列数

Batch file 计算文件中的列数,batch-file,Batch File,我需要帮助。我必须使用批处理文件计算columns.txt。列由分隔符分隔| 我正在尝试这个: @echo off set file=C:\Users\Documents\test\days.txt for /F "delims==|" %%a in ('type "%file%" ^|find "" /v /c') do set contColumns=%%a echo This file %file% have %contColumns% columns. PAUSE 下面

我需要帮助。我必须使用批处理文件计算columns.txt。列由分隔符分隔| 我正在尝试这个:

@echo off

set file=C:\Users\Documents\test\days.txt

for /F "delims==|" %%a in ('type "%file%" ^|find "" /v /c') do set contColumns=%%a    

echo This file %file% have %contColumns% columns.

PAUSE

下面将计算文件第一行中的|分隔列数。这仅在线路长度为@ECHO OFF时有效 SETLOCAL 设置sourcedir=U:\sourcedir 设置文件名1=%sourcedir%\q426111659.txt ::第一行
SET/p line=这将有助于我们了解输入文件的详细信息。每行的列数是否相同?只读第一行总比全读好。
@echo off
setlocal enableDelayedExpansion
set "file=C:\Users\Documents\test\days.txt"

:: Read the first line
set "ln="
<"%file%" set /p "ln="

:: Convert columns into lines by substituting .\n. for every |
if defined ln set ^"ln=.!ln:^|=.^
%= This equates to a newline (\n) character =%
.!^"

:: Count the number of lines and store the result
for /f %%N in ('cmd /v:on /c echo(^^!ln^^!^|find /c /v ""') do set "cnt=%%N"

echo line 1 column count = %cnt%
@echo off
setlocal disableDelayedExpansion
set "file=C:\Users\Documents\test\days.txt"

:: Read the first line
for /f usebackq^ delims^=^ eol^= %%A in ("%file%") do (
  set "ln=%%A"
  goto :endLoop
)
:endLoop

:: Convert columns into lines by substituting .\n. for every |
setlocal enableDelayedExpansion
if defined ln set ^"ln=.!ln:^|=.^
%= This equates to a newline (\n) character =%
.!^"

:: Count the number of lines and store the result
for /f %%N in ('cmd /v:on /c echo(^^!ln^^!^|find /c /v ""') do set "cnt=%%N"

echo line 1 column count = %cnt%