CMD/BAT - Процентное соотношение имен в файле
-
f1rstonlyone@vk
CMD/BAT - Процентное соотношение имен в файле
Здравствуйте.
Собственно, есть файл, в котором много разных имен/названий того или иного файла. Нужно сделать процентное соотношение этих имен в файле.
Пример:
==Folders==
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
--> 50% - File1 --> 30% File2 --> 10% File3 --> 10% File4
Собственно, есть файл, в котором много разных имен/названий того или иного файла. Нужно сделать процентное соотношение этих имен в файле.
Пример:
==Folders==
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
--> 50% - File1 --> 30% File2 --> 10% File3 --> 10% File4
-
Iska
Re: CMD/BAT - Процентное соотношение имен в файле
Цитата f1rstonlyone@vk:
Собственно, есть файл, в котором много разных имен/названий того или иного файла.
Упакуйте образец этого файла в архив и приложите к сообщению.
Собственно, есть файл, в котором много разных имен/названий того или иного файла.
CMD/BAT - Процентное соотношение имен в файле
Упакуйте образец этого файла в архив и приложите к сообщению.
-
alpap
Re: CMD/BAT - Процентное соотношение имен в файле
f1rstonlyone@vk,
именно вот так скопировал в "file.txt":
Код:
если имена файлов не будут иметь пробелов, то будет работать такой код:
Код:
именно вот так скопировал в "file.txt":
Код:
Код: Выделить всё
==Folders==
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exeесли имена файлов не будут иметь пробелов, то будет работать такой код:
Код:
Код: Выделить всё
@echo off
- Вложения
-
f1rstonlyone@vk
Re: CMD/BAT - Процентное соотношение имен в файле
Цитата alpap:
f1rstonlyone@vk,
именно вот так скопировал в "file.txt":
Код:
==Folders==
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
если имена файлов не будут иметь пробелов, то будет работать такой код:
Код:
@echo off
f1rstonlyone@vk,
именно вот так скопировал в "file.txt":
Код:
==Folders==
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
если имена файлов не будут иметь пробелов, то будет работать такой код:
Код:
@echo off
-
Iska
Re: CMD/BAT - Процентное соотношение имен в файле
Посредством LogParser (
Код:
Скрытый текст
[spoiler]
[/spoiler]
Или так:
Код:
Скрытый текст
[spoiler]
[/spoiler]
Или даже так:
Код:
Скрытый текст
[spoiler]
[/spoiler]
Код:
Скрытый текст
[spoiler]
[/spoiler]
Средство Log Parser 2.2 - TechNet - Microsoft
):Код:
Код: Выделить всё
"C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT Field1, MUL(PROPCOUNT(Field1), 100.0) AS Percent FROM 'C:\Мои проекты\0083\base.txt' GROUP BY Field1 ORDER BY Percent DESC" -i:CSV -headerRow:OFF -q:ONСкрытый текст
[spoiler]
[/spoiler]Или так:
Код:
Код: Выделить всё
"C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT Field1, COUNT(Field1) AS Total, MUL(PROPCOUNT(Field1), 100.0) AS Percent INTO DATAGRID FROM 'C:\Мои проекты\0083\base.txt' GROUP BY Field1 ORDER BY Percent DESC" -i:CSV -headerRow:OFF -q:ONСкрытый текст
[spoiler]
[/spoiler]Или даже так:
Код:
Код: Выделить всё
"C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT Field1, COUNT(Field1) AS Total INTO Chart.gif FROM 'C:\Мои проекты\0083\base.txt' GROUP BY Field1" -i:CSV -headerRow:OFF -q:ON -o:CHART -chartType:ColumnClustered -groupSize:2048x768 -view:ONСкрытый текст
[spoiler]
[/spoiler]Код:
Код: Выделить всё
"C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT Field1, COUNT(Field1) AS Total INTO Chart.gif FROM 'C:\Мои проекты\0083\base.txt' GROUP BY Field1" -i:CSV -headerRow:OFF -q:ON -o:CHART -chartType:Pie -groupSize:1024x1024 -view:ONСкрытый текст
[spoiler]
[/spoiler]
- Вложения
- Вложения
-
[Расширение png было запрещено, вложение больше недоступно.]
-
megaloman
Re: CMD/BAT - Процентное соотношение имен в файле
Вот вариант решения
[spoiler]Код: [/spoiler]
Не нашел ничего общего между файлом base.txt в представленном base.rar и анонсированном тексте в самом вопросе
Обрабатывал файл, где первой строкой идет строка
==Folders==
Я её пропускаю.
И далее
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
Есть пробелы, нет - не важно.
[spoiler]Код: [/spoiler]
Код: Выделить всё
@Echo OFF
cls
Set "FileIn=Z:\Box_In\file.txt"
SetLocal EnableExtensions EnableDelayedExpansion
Set /A nAll=0
Set /A nName=0
Set "Str="
For /F "usebackq tokens=*" %%s In (`More +1 "%FileIn%" 2^>nul^|Sort`) Do (
If /I Not "!Str!"=="%%s" (
Set /A nName+=1
Set "Str=%%s"
Set /A n!nName!=0
Set "Name!nName!=%%s"
)
Set /A nAll+=1
Set /A n!nName!+=1
)
Set "OutStr="
FOR /L %%i IN (1,1,%nName%) DO Call :Out "Name%%i" "n%%i"
Echo %OutStr%
pause
GoTo :Eof
:Out
Call Set "Name=%%%~1%%"
Call Set "n=%%%~2%%"
Set /A Percent=((n*10000)/nAll+50)/100
Set "OutStr=%OutStr% --^>%Percent%%% - %Name%"
GoTo :EofНе нашел ничего общего между файлом base.txt в представленном base.rar и анонсированном тексте в самом вопросе
Обрабатывал файл, где первой строкой идет строка
==Folders==
Я её пропускаю.
И далее
File1.exe
File1.exe
File2.exe
File2.exe
File1.exe
File3.exe
File1.exe
File2.exe
File4.exe
File1.exe
Есть пробелы, нет - не важно.
-
alpap
Re: CMD/BAT - Процентное соотношение имен в файле
Цитата f1rstonlyone@vk:
, выдало
первую строку конечно лучше убрать, а вот пробелы недопустимы, но выводит у меня нормально:
писалось в принципе на скорую руку, но как вариант, когда лучшего нет, а так варианты лучше использовать предоставленные Iska и megaloman
, выдало
CMD/BAT - Процентное соотношение имен в файле
первую строку конечно лучше убрать, а вот пробелы недопустимы, но выводит у меня нормально:
Файл 146164
писалось в принципе на скорую руку, но как вариант, когда лучшего нет, а так варианты лучше использовать предоставленные Iska и megaloman