В настоящее время у меня есть командный файл, который проходит через текстовый файл и назначает каждую строку в массив. Я хочу перебирать цикл и удалять определенное количество символов из каждого значения в массиве. Возможно ли это сделать?Манипулирование строк в массивах в пакетном файле?
@ECHO off
findstr /C:"number" /C:"type" testFile.txt > oneresult.txt
set "file=oneresult.txt"
set /A i=0
timeout /t 1
echo ---------------Results--------------- > results.txt
for /f "tokens=*" %%x in (oneresult.txt) do (
call echo %%x >> results.txt
call set array[%i%]=%%x
set /A i+=1
)
call echo %i% files received >> results.txt
del "oneresult.txt"
Так что сейчас он просто печатает извлекаемые строки из testfile.txt, а затем они в конечном итоге помещены в Result.txt. Я бы хотел, чтобы все строки, полученные из файла testFile.txt, удалили первые 10 символов. Если есть более простой способ, дайте мне знать. До сих пор это то, что я нашел, но я также немного партийный noob.
Просто понял его без массива и размещения ответа на кого-либо еще, что может быть поиск в будущем:
@ECHO off
findstr /C:"number" /C:"type" testFile.txt > oneresult.txt
set /A i=0
timeout /t 1
echo ---------------Results--------------- > results.txt
for /f "tokens=*" %%x in (oneresult.txt) do (
setlocal enabledelayedexpansion
call set print=%%x
call set newprint=!print:~32!
call echo !newprint! >>results.txt
endlocal
set /A i+=1
)
call echo %i% files received >> results.txt
del "oneresult.txt"
Все детали управления массивом в пакетных файлах объясняются в [этом ответе] (http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990). Например: 'set array [! I!] = %% x' и' for %% i in (! I!) Do echo! Array [%% i]: ~ 32! ' – Aacini