|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как отсортировать файлы? |
|
|
CMD/BAT - [решено] Как отсортировать файлы?
|
Пользователь Сообщения: 87 |
Профиль | Отправить PM | Цитировать |
|
Отправлено: 15:45, 15-07-2019 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Patroklos, Как понять "отсортировать"? Что в результате?
|
------- Отправлено: 18:22, 15-07-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Patroklos, в Проводнике — стандартными средствами, полагаю, никак. В скрипте WSH — так:
Скрытый текст
Option Explicit Const adVarChar = 200 Const adVarWChar = 202 Dim strSourceFolder Dim objFSO Dim objFile Dim objRegExp Dim objRecordSet If WScript.Arguments.Count = 1 Then strSourceFolder = WScript.Arguments.Item(0) Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strSourceFolder) Then Set objRegExp = WScript.CreateObject("VBScript.RegExp") objRegExp.Pattern = "^.+__(\d{4})__\d\.\d__\.(?:avi|wmv|flv|3gp|webm|ogv|mpg|mpeg|mp4|mkv|m4v)$" With WScript.CreateObject("ADODB.RecordSet") With .Fields .Append "File name", adVarWChar, 255 .Append "Year", adVarChar, 4 End With .Open() For Each objFile In objFSO.GetFolder(strSourceFolder).Files If objRegExp.Test(objFile.Name) Then .AddNew Array("File name", "Year"), Array(objFile.Name, objRegExp.Execute(objFile.Name).Item(0).Submatches.Item(0)) End If Next .Sort = "Year" Do Until .EOF WScript.Echo .Fields.Item("File name") .MoveNext Loop .Close() End With Set objRegExp = Nothing Else WScript.Echo "Can't find source folder [" & strSourceFolder & "]." WScript.Quit 2 End If Set objFSO = Nothing Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>" WScript.Quit 1 End If WScript.Quit 0 На PowerShell должно быть ещё проще — там можно тупо приписать новое свойство к производному классу и отсортировать по нему. |
Отправлено: 19:05, 15-07-2019 | #3 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
В результате хочу получить список фильмов отсортированный по году. От младшего к старшему. Manhunter__1986__7.2__.mp4 The Silence of the Lambs__1991__8.6__.mp4 Hannibal__2001__6.8__.mp4 Red Dragon__2002__7.2__.mp4 Hannibal Rising__2007__6.2__.mp4 Цитата Iska:
Но мне удобней накостылить свой лоунчер. Цитата Iska:
|
|||
Отправлено: 19:35, 15-07-2019 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Patroklos:
|
||
Отправлено: 19:51, 15-07-2019 | #5 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Patroklos:
powershell самый простецкий вариант: |
|
------- Отправлено: 20:10, 15-07-2019 | #6 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать В результате хочу получить список фильмов отсортированный по году. От младшего к старшему.
@Echo Off cls >nul chcp 1251 Set "BoxIn=Z:\Box_In" Set "Mask=*__????__?.?__.mp4" Set "OutFile=Z:\Box_In\_Reestr.txt" >"%OutFile%" (FOR /L %%y IN (1900,1,2050) DO ( Call Set "MMask=%%Mask:????=%%y%% FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:-D "%BoxIn%\%%MMask%%"`) DO ( Echo %%f ))) Pause Exit /B |
------- Отправлено: 20:19, 15-07-2019 | #7 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата YuS_2:
А можно ещё сортировку по оценке? megaloman, Спасибо большое, всё работает как надо! |
||
Отправлено: 20:27, 15-07-2019 | #8 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Patroklos:
Предполагаю следующий вопрос: "А можно ли совместить?" - Можно |
|
------- Отправлено: 20:45, 15-07-2019 | #9 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Супер, спасибо! А как заставить ПоШ искать рекурсивно и при этом писать в консоль только имя и путь?
Я на сайте МС читаю хелп но он не мне не помог. Я пишу -Recurse у меня в консоли бардак. Я пишу -Name -Recurse он не желает искать рекурсивно. Есть возможность совместить -Name и -Recurse ? |
Отправлено: 21:04, 15-07-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MSFT SQL Server - подскажите, пожалуйста, как отсортировать данные в нужном мне порядке | vanoman | Программирование и базы данных | 0 | 28-04-2018 18:58 | |
VBS/WSH/JS - [решено] скрипт: перечень сервисов и статусов, как поправить кодировку и отсортировать? | andr_mozg | Скриптовые языки администрирования Windows | 19 | 24-12-2012 12:31 | |
Разное - [решено] отсортировать файлы по типу, как в висте! | Kamila | Microsoft Windows 7 | 5 | 14-10-2009 23:12 | |
Как отсортировать одинаковые файлы? | Evita | Хочу все знать | 3 | 25-08-2005 18:37 | |
Как отсортировать улицы на FoxPro | Liana111 | Программирование и базы данных | 2 | 26-04-2004 08:20 |
|