我试图在记事本++中进行批处理,它将计算所选文本中重复行的数量。通过文件循环批处理
到目前为止,我有记事本+做工精细
NPE_CONSOLE v+
CLS
ECHO $(CURRENT_WORD)
CON_SAVETO "H:\tmp.txt"
NPE_CONSOLE v-
该脚本将所选文本tmp.txt
,唯一的问题是,它包括,在底部,CON_SAVETO "H:\tmp.txt"
但我可以忍受现在。
编辑另外,我不认为Notepad ++是这里的问题,因为我尝试从cmd
行运行批处理文件并获得相同的错误/问题。我也尝试手动设置tmp.txt
文件,仍然是相同的问题。
我的批处理文件是什么原因造成的问题:
::@ECHO OFF
CD "H:\"
SET counter=0
SET prev=a
FOR /F "tokens=*" %%L IN (tmp.txt) DO (
SET blnOut=0
SET curLine="%%L"
IF /I %prev%==%curLine% (
SET counter=%counter%+1
SET blnOut=1
)
IF %blnOut%==0 (
IF %prev%==a (
SET counter=%counter%+1
SET blnOut=1
)
IF %blnOut%==0 (
ECHO %curLine%- %counter%
SET counter=1
)
)
SET prev=%curLine%
)
我用尽了一切我能想到的,包括分裂断过程变成一个功能,但我不断收到类似错误Unexpected)
,或者如果它运行,它不循环通过该文件。
目前,这是tmp.txt
:
1
2
3
4
5
6
7
8
1
4
5
8
4
3
4
4
5
那么理想的输出是:
1 - 2
2 - 1
3 - 2
4 - 5
5 - 3
6 - 1
7 - 1
8 - 2
您是否认为记事本++会导致此行为? – Endoro 2013-04-05 18:29:10
我不认为记事本+ +是这里的问题,尽管我包含代码以防有人可以确认或否认。更新问题以更好地解释这一点。 – 2013-04-05 18:30:55
你怎样称呼你的批处理文件(以及你传入的参数);即在这个例子中'%1'解析了什么? – 2013-04-05 18:53:39