I wrote a piece of code to check for string lengths over 300 and trim back down to 300.
Code: Select all
::-- Set maximum length of string --::
SET "STRINGLEN=300"
SET "TOT_COLS=6"
IF EXIST "datafiletemp.csv" DEL /F /Q "datafiletemp.csv" >nul 2>&1
FOR /F "USEBACKQ tokens=1-%TOT_COLS% delims=," %%A IN ( "datafiletemp.csv" ) DO (
SET "STRING=%%F" & CALL :STRLEN RESULT STRING
IF !RESULT! GTR %STRINGLEN% SET "STRING=!STRING:~0,%STRINGLEN%!"
ECHO %%~A,%%~B,%%~C,%%~D,%%~E,!STRING!>>"datafiletempz.csv"
)
pause
:STRLEN <resultVar> <stringVar>
(
SET "S=!%~2!#"
SET "LEN=0"
FOR %%P IN (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) DO (
IF "!S:~%%P,1!" NEQ "" (
SET /a "LEN+=%%P"
SET "S=!S:~%%P!"
)
)
)
(
ENDLOCAL
SET "%~1=%LEN%"
EXIT /B
)
Thank you!