BorlandIMHO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: было бы быстрее выполнять всю обработку в пошевом скрипте за один вызов | Вот так: Код: @echo off if /I "%~1*" == "*" exit call :GETTIMESTAMP STARTTIME REM Собственно, всю обработку выполняет одна следующая команда powershell -NoLogo -Noninteractive -Command "$Result=@();$Input = gc '%~f1'; foreach ($Line in $Input) {$Time=$Line.split(' ',2)[0];$Other=$Line.split(' ',2)[1];while ([regex]::Matches($Time,':').Count -le 1) {$Time = '0:' + $Time};$Result = $Result + ($(Get-Date $time -Format 'HH:mm:ss.fff') + ' ' + $Other)};$Result | Set-Content -Path '%~dpn1_xv%~x1'" call :GETTIMESTAMP ENDTIME echo Started at: %STARTTIME% echo Ended at: %ENDTIME% for /F "usebackq" %%E in (`powershell -NoLogo -Noninteractive -Command "($(Get-Date '%ENDTIME%')-$(Get-Date '%STARTTIME%')).TotalSeconds"`) do echo Total: %%E seconds pause goto :EOF :GETTIMESTAMP for /f "delims=" %%A in ('wmic.exe OS get LocalDateTime ^|find "."') do set "TIMESTAMP=%%A" set %1=%TIMESTAMP:~0,4%-%TIMESTAMP:~4,2%-%TIMESTAMP:~6,2% %TIMESTAMP:~8,2%:%TIMESTAMP:~10,2%:%TIMESTAMP:~12,2%.%TIMESTAMP:~15,3% goto :EOF | Те же 100 строк за 0.32 сек. Ради хохмы, 1000 строк за 0.441 сек. Т.е. на больших файлах powershell существенно быстрее "голого" cmd.
| Всего записей: 2432 | Зарегистр. 12-10-2006 | Отправлено: 22:18 15-06-2023 | Исправлено: BorlandIMHO, 23:30 15-06-2023 |
|