Компьютерный форум 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=336055)

bidjo 06-08-2018 22:07 2825168

создание файла со списком файлов в папке
 
всем привет.
есть много папок.
в папках гигантское количество фоток.
хочу конвертировать в видео все ffmpeg-ом, но для начала надо хотя бы, что бы видео файл каждый был весом не более 8 часов. для этого надо не более 960 файлов.

скрипт
Код:

@echo off
setlocal
1>nul chcp 1251
cd c:\1
(for %%i in (*.jpg) do @echo file '%%i') > mylist.txt

создает просто файл со всем добром внутри.
мне же нужно что бы создавался файл, с обьемом, например 960 файлов. ну а так как в папке десяток тысяч файлов, то нужно что бы скрипт создал несколько mylist.txt с перечнем всего этого добра, и что бы оно не повторялось:)
пример - 3000 файлов, с img1.jpg по img3000.jpg.
запускаю omg.bat, он создает mylist.txt 3 штуки, в каждом по N кол-во имен файлов, по алфавитному порядку, где в первом mylist.txt, например список файлов с img1.jpg по 1000, во втором mylist2.txt с img1001.jpg по 2000, в третьем с img2001 по 3000 соответственно.
файлы в реальности отличаются в названии только датой, например Ёолочка_01-05-2017_01h25m22s400ms или Будка со злой собакой_25-03-2017_00h09m48s793ms. Каждое наименование файлов лежит у себя в отдельной папке.

Iska 06-08-2018 23:30 2825181

bidjo, jpeg сжимать малоосмысленно. И почему
Цитата:

Цитата bidjo
ffmpeg-ом, »

?

bidjo 07-08-2018 09:19 2825211

я неправильно выразился:) конвертация кучи jpg в видео.
в топикстарте инфу подправил. приношу свои извинения.

Iska 07-08-2018 17:25 2825317

На PowerShell:
Скрытый текст
Код:

Param (
    [System.String]$sSourceFolder        = "C:\Sample",
    [System.String]$sDestFileNamePattern = 'mylist:.txt',
    [System.Int32]$iCountLimit          = 960

)

if([System.IO.Directory]::Exists($sSourceFolder)) {
    Get-ChildItem -Path "$sSourceFolder\*.*" -File -Include '*.jpg', '*.jpeg', '*.jpe' | ForEach-Object -Begin { $i = 1; $iCount = 1; $sContent = '' } -Process {
        $sContent += "file '$($_.Name)'`r`n"

        if($i -ge $iCountLimit) {
            $sResultFile = "$sSourceFolder\$($sDestFileNamePattern.Replace(":", $iCount.ToString("0000")))"
            Out-File -InputObject $sContent -FilePath $sResultFile -Encoding ASCII -NoNewline

            Write-Host "[$sResultFile] : $i file(s)." -ForegroundColor Cyan
           
            $i = 1
            $iCount++
            $sContent = ''
        } else {
            $i++
        }
    }

    if($sContent -ne '') {
        $i--
        $sResultFile = "$sSourceFolder\$($sDestFileNamePattern.Replace(":", $iCount.ToString("0000")))"
        Out-File -InputObject $sContent -FilePath $sResultFile -Encoding ascii

        Write-Host "[$sResultFile] : $i file(s)." -ForegroundColor Cyan
    }
} else {
    Write-Host "Can't find source folder [$sSourceFolder]." -ForegroundColor Red
}


Файлы никак не сортируются.

bidjo 07-08-2018 20:03 2825345

спасибо за ответ.
выполнил скрипт, в mylist получил file '??? ?? ????? 114_04-08-2018_21h32m16s300ms.jpg' и таких кучу.
видимо не хватает как в cmd chcp 1251 , токак как его в powershell прописывать?

Iska 07-08-2018 20:19 2825347

Цитата:

Цитата bidjo
в mylist получил file '??? ?? ????? 114_04-08-2018_21h32m16s300ms.jpg' и таких кучу. »

Замените в двух местах:
Код:

… -Encoding ASCII
на:
Код:

… -Encoding 'Default'

bidjo 08-08-2018 09:23 2825414

danke very much! работает. спасибо


Время: 15:57.

Время: 15:57.
© OSzone.net 2001-