обчислити кількість символів у змінній


0

Я намагаюся обчислити довжину виходу з набору. Для мене дуже важливо, що я намагаюся обчислити це з можливістю затримки розширення лише сирої партії.

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

Якщо я не додаю +0, він продовжує повертати пропущений операнд. Якщо я ввімкнув +0, повернення ECHO не змінюється. Це не перший раз, коли я намагався зробити числове відлуння. Мене бентежить, чому букви лунатимуть добре, але цифри не будуть.

Відповіді:


1

Я думаю, що %%~zпрацює лише для файлів, а не для змінних. Отже, запишіть вміст змінної у файл та отримайте розмір файлу.

Як що до цього:

@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%

Я новачок у цьому, я не впевнений, це правильна відповідь чи просто одна із багатьох. Це працює для того, що мені потрібно. Майже саме те, на що я йшов. Я намагаюсь навчити себе цьому за допомогою пошуку веб-сайтів, я відчуваю, що в мене все добре, просто не розумію все. Через 30 хвилин хтось тут грубо гавкає, а потім видаляє все, що ми обговорювали. Я більше досліджував і зрозумів, що це називається stringlength, тому Беренд, я дуже вдячний, що ви читали те, що я написав, і не просто мені говорили, я бачу, ваш сценарій зламаний, що ви збираєтеся робити з цим.
Дональд Хенкок
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.