无法使用 if 条件更改 for 循环中的变量名
我正在编写一段脚本,如果文件名包含字符串 NAC,则将变量 headerSuffix 的值设置为 VDN。如果文件名不包含 NAC,则使用 headerSuffix 的默认值 [最初由我设置为 VDL] 我在字符串名称中搜索单词“NAC”的逻辑是正确的,但标题值没有改变。它总是采用 VDL 的默认值。我已经在代码中启用了 setlocal enabledelayedexpansion。谁能指出如何解决这个问题?
所以这行代码不能改变变量:if errorlevel 1 (set headerSuffix=VDN)
@echo off
Title: Count number of lines in each TXT file in a directory
cls
@Echo off
cd /D "%~dp0"
Set /a _Lines=0
Echo *************** TEST EXECUTION STARTS ***************
setlocal enabledelayedexpansion
:nextfile
::if not exist *.TXT cmd /k
if not exist *.TXT msg /time:10 * "Test excecution complete!!!" & cmd /k
FOR %%F IN (*.TXT) DO (
set filename=%%F
REM If file name contain IF or LP, then header suffix is VDL. If file name contains NAC, then VDN
set headerSuffix=VDL
goto tests
)
:tests
For /f %%j in ('%SystemRoot%\System32\find.exe /C /V "" 0^<"%filename%"') Do Set /a _Lines=%%j
set /A Actual_Lines = %_Lines%-2
for /f %%a in (%filename%) do (
Echo File name - %filename%
REM If file name contain IF or LP, then header suffix is VDL. If file name contains NAC, then change the headersuffix to VDN