menghitung jumlah karakter dalam suatu variabel

0

Saya mencoba untuk menghitung panjang output dari suatu set. Sangat penting bagi saya, saya mencoba menghitung ini tanpa mengaktifkan delayaedexpansion batch mentah saja.

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

Jika saya tidak menambahkan +0, itu tetap mengembalikan operan yang hilang. Jika saya mengaktifkan +0, ECHO akan terus mati. Ini bukan pertama kalinya saya mencoba melakukan gema numerik. Saya bingung mengapa surat akan bergema dengan baik tetapi angka tidak akan.

Donald Hancock
sumber

Jawaban:

1

Saya pikir itu %%~zhanya berfungsi untuk file, bukan untuk variabel. Jadi, tulis konten variabel ke file, dan dapatkan ukuran file.

Bagaimana dengan ini:

@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%
Berend
sumber
Saya baru dalam hal ini, saya tidak yakin apakah ini jawaban yang benar atau hanya satu dari banyak jawaban. Ini bekerja untuk apa yang saya butuhkan. Hampir persis untuk apa aku pergi. Saya mencoba untuk mengajarkan diri saya ini dari pencarian situs web, saya merasa saya melakukan cukup baik, saya hanya tidak mendapatkan semua istilah. Setelah 30 menit seseorang di sini menggonggong dengan kasar dan kemudian menghapus semua yang kita diskusikan. Saya meneliti lebih lanjut dan menyadari ini disebut stringlength, Jadi Berend Saya sangat menghargai Anda membaca apa yang saya tulis dan tidak hanya memberi tahu saya, saya melihat skrip Anda rusak, apa yang akan Anda lakukan.
Donald Hancock