Я пытался найти длину строки, которая заключает числа и на основе этого значения я хотел бы заполнить нулями. Но у меня возникли проблемы.
Что я пытаюсь сделать: -> У меня есть CSV-файл, содержащий 3 поля значений, разделенных запятой, и мне нужно проверить каждую из этих переменных, являются ли они больше или меньше чем число для дальнейшей обработки, например
368,0,2334
0,42,2000
24,215,0
-> В зависимости от длины строки я хочу заполнить их нулями, соответственно, прежде чем сравнивать с другим числом 4 di git (Four di git номер фиксирован) для дальнейшей обработки
@echo off
setlocal EnableExtensions enableDelayedExpansion
FOR /F "tokens=1-3* delims=," %%a IN (data.csv) DO (
set sum1="%%~a"
set sum2="%%~b"
set sum3="%%~c"
set "MYSTRING=!sum1!"
(echo "!MYSTRING!" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%)
set /A STRLENGTH=%ERRORLEVEL%-5
>> length.csv echo string "!MYSTRING!" length = !STRLENGTH!
аналогично другим переменным тоже. Я получаю результаты, как показано ниже.
Output:
string "388" length = -5
string "401" length = -5
string "693" length = -5
string "0" length = -5
string "0" length = -5
некоторые другие выходные данные, использующие проблемы с длиной строки на этом сайте, также приводят к
ECHO is Switched OFF
ECHO is Switched OFF
ECHO is Switched OFF
Expected Output:
string "388" length = 3
string "401" length = 3
string "6934" length = 4
Затем я хочу дополнить нули до 2 или 3 цифр. и сделайте из них 4 цифры, например 0388, 0401 соответственно, и оставьте 4 цифры, чтобы сравнить их с данными.
Может кто-нибудь подсказать мне, где я ошибаюсь?
Почему эта переменная, хранящаяся в sum1, должна быть заключена в! Sum1! а не% sum1%? (Первоначально сделал ошибку и даже не смог сохранить значения в переменной для вычисления длины) Я также очень плохо знаком с пакетным скриптингом.
Спасибо. Ваша помощь очень ценится.