Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Вывод данных в несколько столбцов (http://forum.oszone.net/showthread.php?t=210076)

sov44 28-06-2011 23:14 1703292

Вывод данных в несколько столбцов
 
Есть набор обновлений офиса (msp) типа KB981716-accwiz.msp, kb2289163-gpfilt-rus.msp, где первые буквы могут быть как в верхнем, так и в нижнем регистре. Скрипт
Код:

@echo off
for /f "delims=-" %%a in ('dir/b/a-d *.msp') do echo %%a
pause

выводит в один столбец имена обновлений. Подскажите, как вывести имена обновлений в верхнем регистре в несколько столбцов?

amel27 29-06-2011 04:54 1703379

пример вывода в 5 столбцов:
Код:

@echo off
SetLocal EnableDelayedExpansion
(
for /f "delims=-." %%a in ('dir/b/a-d kb*.msp') do (set "$a=%%a  "
  set "$s=!$s!KB!$a:~2,9!"& set/a $i+=1
  if !$i! equ 5 echo:!$s!& set "$s="& set/a $i=0
))& echo:!$s!

pause>nul


Foreigner 29-06-2011 06:46 1703391

sov44,
Код:

dir /d /a-d *.mst | findstr "\.mst"

sov44 29-06-2011 06:58 1703395

amel27, супер! поясните пожалуйста код.

amel27 29-06-2011 11:47 1703530

Цитата:

Цитата sov44
поясните пожалуйста код »

Код:

@echo off
SetLocal EnableDelayedExpansion

for /f "delims=-." %%a in ('dir/b/a-d kb*.msp') do (
  set "$a=%%a  "          &rem: добавляем в конец имени файла
                            rem: пробелы [для выравнивания столбцов]
  set "$s=!$s!KB!$a:~2,9!" &rem: добавляем в конец текущей строки [$s]
                            rem: "KB" и часть имени файла, начиная с 3-го
                            rem: символа длиной 9 символов [включая пробелы]
  set/a $i+=1              &rem: увеличиваем счетчик столбцов [$i]
  if !$i! equ 5 (          rem: если это последний столбец, то:
    echo:!$s!              &rem:  выводим строку [$s]
    set "$s="              &rem:  зачищаем переменную строки [$s]
    set/a $i=0            &rem:  обнуляем счетчик столбцов [$i]
  )
)
echo:!$s!                  &rem: выводим неполный остаток строки [$s]


Foreigner 29-06-2011 17:31 1703712

sov44,
Вариант с верхним регистром:
Код:

@echo off

for /f "tokens=*" %%i in ('"dir /d /a-d *.msp | find "msp""') do (

    for /f "tokens=2 delims=:" %%j in ('"2>&1 find /c /v "" "%%i""') do echo %%j

)



Время: 17:43.

Время: 17:43.
© OSzone.net 2001-