calcula o número de caracteres em uma variável

0

Estou tentando calcular o tamanho de uma saída de um conjunto. É muito importante para mim tentar calcular isso sem ativar a delayedexpansion apenas lote bruto.

@echo off
cls
set aaa=asdf
  for %%a in ("%aaa%") do (
  set /a bbb=%%~za + 0 
  echo %bbb%
)

Se eu não adicionar o +0, ele continuará retornando o operando ausente. Se eu colocar o +0, ele continua retornando. O ECHO está desligado. Esta não é a primeira vez que tento fazer um eco numérico. Estou confuso sobre por que as letras vão ecoar muito bem, mas os números não vão.

    
por Donald Hancock 14.09.2016 / 10:00

1 resposta

1

Eu acho que %%~z só funciona para arquivos, não para variáveis. Então, escreva o conteúdo da variável em um arquivo e obtenha o tamanho do arquivo.

E sobre isso:

@echo off
set aaa=asdf

:: Write variable to file
set tmpfile=%TEMP%\%RANDOM%
echo %aaa%> %tmpfile%

:: Determine filesize, subtract 2 bytes for newline
for /F "usebackq" %%a in ('%tmpfile%') do set /a size=%%~za - 2

del %tmpfile%

echo Size: %size%
    
por 14.09.2016 / 12:17

Tags