0
I am trying to get the lines of a tmp.txt file
set n=0
echo %n%
for /F "tokens=*" %%l in (tmp) do (
set d[%n%]=%%l
set /A n+=1
)
echo %d[14]%
but when I execute:
'echo %n%' -> '25'
and
'echo %d[14]%'
'ECHO is disabled.'
0
I am trying to get the lines of a tmp.txt file
set n=0
echo %n%
for /F "tokens=*" %%l in (tmp) do (
set d[%n%]=%%l
set /A n+=1
)
echo %d[14]%
but when I execute:
'echo %n%' -> '25'
and
'echo %d[14]%'
'ECHO is disabled.'
2
To get the total number of lines without saving in variable:
%__AppDir__%\find.exe /c /v "" ^<.\tmp.txt
for /f %i in ('%__AppDir__%\find.exe /c /v "" ^<.\tmp.txt')do set "_linhas=%i"
To get the total number of lines and save to a variable using a bat:
for /f %i in ('%__AppDir__%\find.exe /c /v "" ^<.\tmp.txt')do set "_linhas=%i"
Command would basically be:
Find
(find) + /c
ount (count) + /v
oid (ignore/avoid) + ""
nothingness + "arquivo"
EnableDelayedExpansion
, where at runtime it is possible to obtain in delay, the value of its numeric variable for your index[n]
recem incremented, and replacing "%
" for "!
" when defining/accessing your %var%
/ !_var!
...@echo off
setlocal EnableDelayedExpansion
for /f usebacktokens^=1*delims^=^] %%a in (`
type .\File.txt ^| %__AppDir__%find.exe /n /v ""
=;`)do set /a "_n+=1" & >con: call set "_d[%%_n%%]=!_bs!%%b"
:: Acessando todas as linhas salvas em _d[x] ::
for /l %%l in (1 1 !_n!)do echo\!_d[%%l]! && if %%~l equ !_n! (
echo\ & echo= Sua linha 14: & echo; "!_d[14]!" & endlocal)
@echo off
cd /d "%~dp0"
setlocal enabledelayedexpansion
for /f usebacktokens^=1*delims^=^] %%a in (`%__AppDir__%find.exe /n /v "" ^<.\File.txt`)do (
set /a "_n+=1"
set "_d[!_n!]=%%b"
)
echo\ !_d[33]!
echo\ !_d[14]!
endlocal
'ECHO está desativado'
1. It is not an error message, it is a message that returns the status for the command echo
, and since its variable did not receive a runtime value, the command echo %var%
is interpreted by cmd.exe
(command interpreter), literally as echo
:
echo %var_s_valor%
rem :: o mesmo que ::
echo
2. To delete the text that informs the current state of the command echo
in test runs, where you can check if the variable received (or displays) any value correctly, try:
echo. %var%
echo; %var%
echo/ %var%
echo\ %var%
echo= %var%
echo+ %var%
echo( %var%
echo[ %var%
echo: %var%
Obs.: When there is no "string" stored in the variable at runtime, any of the commands echo?
above you return a blank line and no longer the message from Status [On|Off]
, but having some value, the character is not displayed with the variable, only the strings...
>set "%d[14]%=" // nada/sem valor/strings
>echo; %d[14]%
[linha em branco]
>set %d[14]%=linha/strings
>echo; %d[14]%
linha/strings
References:
-3
to contribute...
@echo off
echo >result.txt
echo >info.txt
echo >naocadastrado.txt
for /f "tokens=*" %%s in (new14.txt) do (
echo USUARIO ====== %%s
dsquery user -name " %%s"
dsquery user -name " %%s" >> info.txt
echo USUARIO ====== %%s >result.txt
dsquery user -name " %%s" >> result.txt
for /f "tokens=*" %%a in ('find.exe /c /v "" ^<.\result.txt') do (
if %%a EQU 2 echo "USUARIO NORMAL ========"
if %%a EQU 1 echo "USUARIO NAO CADASTRADO ========"
if %%a EQU 1 echo %%s>> naocadastrado.txt
)
echo ======================================================================================================
)
Browser other questions tagged batch
You are not signed in. Login or sign up in order to post.