![]() |
Не производится выгрузка значений из WMIC с счетчиком.
Добрый день друзья, при выгрузке обновлений через 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%)) |
Код:
@echo off |
Foreigner, тут тоже надо по-хорошему вывод «wmic.exe» через двойное раскрытие делать, поскольку получается опять CrCrLf:
Скрытый текст
![]() Надо полагать, это: Цитата:
Скрытый текст
![]() |
Foreigner, спасибо, считает отлично, если можно в 2х словах в чем косяк моего варианта, почему выгрузка не производилась?
Iska, можете объяснить откуда берутся CrCrLf при выгрузке и как от них можно избавиться? |
Цитата:
|
Так чтобы не было пустых строк и пробелов:
Код:
@echo off |
|
Цитата:
Код:
> (gc .\$env:computername.csv)[0] ![]() |
|
Вложений: 1
Цитата:
|
Угу. У Вас там ровно так же каждая строка оканчивается — \0x0D,\0x0D,\0x0A. А «Get-Content», значит, «умеет» такие несуразицы воспринимать корректно.
|
Всем большое спасибо за помощь и разъяснения!
|
Добрый день, друзья прикрутил код alpap к выгрузке винтов, все отлично работает, но как только попытался вынести код в отдельную функцию см (вариант 2) результат не выводится подскажите где косяк?
Вариант 1
Set TW1=^>^>%computername%.CSV
for /f "skip=2 delims=" %%m In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /format:csv') Do ( for /f "tokens=2 delims==," %%a in ("%%~m") do ( if not "%%~a"=="" set /a cnt+=1 %TW1% cmd /v /c "echo HDD!cnt!;%%~a" )) exit Вариант 2
Set TW1=^>^>%computername%.CSV for /f "skip=2 delims=" %%m In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /format:csv') Do ( Call :123 "%%~m" ) Exit :123 for /f "tokens=2 delims==," %%a in ("%%~m") do ( if not "%%~a"=="" set /a cnt+=1 %TW1% cmd /v /c "echo HDD!cnt!;%%~a" ) Exit /B |
Как минимум, здесь:
Код:
for /f "tokens=2 delims==," %%a in ("%~1") do ( |
Время: 12:00. |
Время: 12:00.
© OSzone.net 2001-