Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не производится выгрузка значений из WMIC с счетчиком.

Ответить
Настройки темы
CMD/BAT - [решено] Не производится выгрузка значений из WMIC с счетчиком.

Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день друзья, при выгрузке обновлений через WMIC столкнулся с проблемой: если прописать то список обновлений нормально выгружается. но по чему то между ними проставляются пробелы.

Скрытый текст

For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC QFE GET HotFixID /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do echo UPDATE; %%B %TW2%


А если добавить счетчик для нумерации списка обновлений, то выгрузка не производится вообще, подскажите где я не прав во втором варианте и как убрать пустую строку в CSV файле между выгруженными значениями?

Скрытый текст
Set TW2=^>^>2_%computername%.CSV
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC QFE GET HotFixID /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do ((Set UPDATE=%%B) & (Set /a K+=1) & (echo %K%; %UPDATE% %TW2%))

Отправлено: 16:54, 08-02-2016

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

for /f "tokens=2 delims==" %%i in ('wmic qfe get hotfixid /value') do (

	if not "%%i"=="" (

		set /a cnt+=1
		1>>"%computername%.csv" echo !cnt!;%%i

	)

)
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 08-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Foreigner, тут тоже надо по-хорошему вывод «wmic.exe» через двойное раскрытие делать, поскольку получается опять CrCrLf:
Скрытый текст


Надо полагать, это:
Цитата 8ash8:
и как убрать пустую строку в CSV файле между выгруженными значениями? »
именно о сём, поскольку CrCrLf приводит к:
Скрытый текст
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:07, 09-02-2016 | #3


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, спасибо, считает отлично, если можно в 2х словах в чем косяк моего варианта, почему выгрузка не производилась?

Iska, можете объяснить откуда берутся CrCrLf при выгрузке и как от них можно избавиться?

Отправлено: 09:23, 09-02-2016 | #4


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата 8ash8:
почему выгрузка не производилась? »
Вы явно перемудрили с findstr и more и с выводом в формате csv (вы берете 1 и 3* токены, а их только 2 (имя компьютера и сам хотфикс))
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:22, 09-02-2016 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Так чтобы не было пустых строк и пробелов:
Код: Выделить весь код
@echo off
for /f "skip=2 delims=" %%m in ('wmic path Win32_OperatingSystemQFE get /format:csv') do (
 for /f "tokens=4 delims==," %%a in ("%%~m") do (
  if not "%%~a"=="" set /a cnt+=1
  1>>"%computername%.csv" cmd /v /c "echo !cnt!;%%~a"
))
exit
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:52, 09-02-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 8ash8:
Iska, можете объяснить откуда берутся CrCrLf при выгрузке »
Они берутся из особенностей разбора юникодного вывода утилиты «wmic.exe».

Цитата 8ash8:
и как от них можно избавиться? »
Двойным разбором по «for /f». Опробуйте, например, код коллеги alpap.
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:10, 10-02-2016 | #7


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата Iska:
тут тоже надо по-хорошему вывод «wmic.exe» через двойное раскрытие делать, поскольку получается опять CrCrLf »
Это вы где такую картинку увидели? У меня нет никаких CrCrLf.
Код: Выделить весь код
> (gc .\$env:computername.csv)[0]
1;KB3116900
> (gc .\$env:computername.csv)[0].length
11

Последний раз редактировалось Foreigner, 10-02-2016 в 09:14.


Отправлено: 09:02, 10-02-2016 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Это вы где такую картинку увидели? »
Открыл результирующий файл в Far Manager'е (F3, затем F4).

Цитата Foreigner:
У меня нет никаких CrCrLf. »
А выложите Ваш результирующий файл. Не факт, что «Get-Content» не вносит свои коррективы.

Отправлено: 09:41, 10-02-2016 | #9


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Вложения
Тип файла: txt file.csv.txt
(84 байт, 3 просмотров)

Цитата Iska:
выложите Ваш результирующий файл »
Хотя судя по размеру, там явно что-то не так.

Отправлено: 10:28, 10-02-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не производится выгрузка значений из WMIC с счетчиком.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужна помощь с выгрузкой из WMIC 8ash8 Скриптовые языки администрирования Windows 16 19-02-2016 10:43
WMI - Перевести из powershell во WMIC dasgespenst Скриптовые языки администрирования Windows 1 03-02-2016 14:59
Установка - не производится установка WINDOWS XP ZVER ROCKER707 Microsoft Windows 2000/XP 1 16-02-2015 17:43
CMD/BAT - [решено] Проблема с записью переменной из WMIC Bruce Wayne Скриптовые языки администрирования Windows 2 29-09-2012 06:56
VBA - Выгрузка в тхт из VBA Dron Программирование и базы данных 2 29-05-2003 11:42




 
Переход