Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10

Вывод в список несколько типов файлов по расширению

01.04.2025, 00:06. Показов 1792. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, пытаюсь переделать батник под свои нужды.
Помогите его подправить, чтобы он мог выводить в список несколько типов файлов по расширению (нужно *.wim и *.esd) и выбирать из списка можно было один файл, введя его порядковый номер, или все файлы введя звездочку(*).
Скрипт должен искать файлы *.wim и *.esd в заданной папке, выводить их список. Далее выбор одного или всех найденных файлов для последующего копирования в папку Backup.

Суть скрипта, найти файлы в папке для создания их бэкапа. Пробую уже второй день и ничего... Не силен я в батниках.

Пробую так, но не выводит ничего...
Кликните здесь для просмотра всего текста
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Echo Off &Cls &SetLocal
    Set "destination=%SYSTEMDRIVE%\Work\Backup"
 
    Pushd "%~dp0"
    Set "source=%SYSTEMDRIVE%\Work\Image\sources"
    Set "src=%source%\*.wim %source%\*.esd"
 
    Set /A i=0
    For %%f In ("%src%") Do (
        Set /A i+=1
        Call Echo %%i%% = "%%~nxf"
        Call Set "@@%%i%%=%%f"
    )
    Echo. &Set /P N=Enter file number 1^<=N^<=%i% ^>
    Call Set "File=%%@@%N%%%"
    If Defined File (
        Echo Copy "%File%" "%destination%\
        Copy "%File%" "%destination%"
    ) Else (
        Echo !!! The entered number value "%N%" is incorrect 
    )
    Popd &EndLocal
Pause
Exit /B 0
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.04.2025, 00:06
Ответы с готовыми решениями:

Переименовать все файлы с расширением, указанным в параметре 1, в файлы с расширением, указанным в параметре 2
Необходимо создать командный файл, который будет переименовывать все файлы с расширением, указанным в параметре 1 в файлы с расширением,...

Как в файле с расширением .bat (командной строки) удалить файлы из папки с расширением .png и .jpg все кроме одно
Например в определенной папке есть файлы 1.png 2.png 3.png 4.png 5.png 6.jpg 7.jpg file.bat Какие команды нужно прописать в file.bat чтобы...

Вывод списка временных файлов с заданным расширением в папке + возможность удаления временных файлов по имени
нужна создать bat ) я вообще бум-бум Создайте командный файл, выполняющий вывод списка временных файлов с за- данным расширением...

12
6996 / 2881 / 1109
Регистрация: 06.06.2017
Сообщений: 9,777
01.04.2025, 19:24
Цитата Сообщение от Alex_Zorg Посмотреть сообщение
найти файлы в папке для создания их бэкапа.
См. 8).
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
02.04.2025, 12:58
Alex_Zorg, добрый! Пробуйте:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
set "source=C:\test"
set "destination=C:\backup"
powershell -executionpolicy bypass -command "$count=1;" ^
    "$files=Get-ChildItem '%source%' -file | where {($_.extension -eq '.wim') -or ($_.extension -eq '.esd')} | Select-Object @{n='Number'; e={$script:count; $script:count++}}, @{n='Name'; e={$_.name}};" ^
    "$files | ft;" ^
    "$number=Read-Host 'Введите порядковый номер файла';" ^
    "if ($number -eq '*') {" ^
        "$files | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "} else {" ^
        "$files | where {$_.number -eq $number} | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "}"
pause
exit
Примечание

1) Скрипт необходимо сохранить в кодировке OEM-866
2) Во 2-ой строчке C:\test необходимо поменять на путь к каталогу с файлами, которые нужно скопировать
3) В 3-ей строчке C:\backup необходимо поменять на путь к каталогу, в который нужно скопировать файлы из п. 2
1
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10
02.04.2025, 13:59  [ТС]
Karen87, спасибо большое за ответ и помощь.
При запуске скрипта получаю красное окно cmd (сплошные ошибки). Думаю что все это из-за того что я пользуюсь семеркой и в ней старая версия PowerShell. Хотелось бы конечно реализацию сего кода без PowerShell, но...
Попробую обновить PowerShell на новую версию...
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
02.04.2025, 14:46
Alex_Zorg, не спешите обновлять версию Powershell. Сейчас попробую адаптировать под имеющуюся у Вас. Единственное, покажите используемый Вами код с точностью до символа и скрин с ошибками
0
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10
02.04.2025, 14:56  [ТС]
Код который пробую:
Кликните здесь для просмотра всего текста

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
    Set "destination=%SYSTEMDRIVE%\Work\Backup"
    Set "source=%SYSTEMDRIVE%\Work\Image\sources"
 
powershell -executionpolicy bypass -command "$count=1;" ^
    "$files=Get-ChildItem '%source%' -file | where {($_.extension -eq '.wim') -or ($_.extension -eq '.esd')} | Select-Object @{n='Number'; e={$script:count; $script:count++}}, @{n='Name'; e={$_.name}};" ^
    "$files | ft;" ^
    "$number=Read-Host 'Введите порядковый номер файла';" ^
    "if ($number -eq '*') {" ^
        "$files | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "} else {" ^
        "$files | where {$_.number -eq $number} | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "}"
pause
exit
Миниатюры
Вывод в список несколько типов файлов по расширению  
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
02.04.2025, 14:58
Alex_Zorg, пробуйте этот вариант:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
    Set "destination=%SYSTEMDRIVE%\Work\Backup"
    Set "source=%SYSTEMDRIVE%\Work\Image\sources"
 
powershell -executionpolicy bypass -command "$count=1;" ^
    "$files=Get-ChildItem '%source%' | where {($_.extension -eq '.wim') -or ($_.extension -eq '.esd')} | Select-Object @{n='Number'; e={$script:count; $script:count++}}, @{n='Name'; e={$_.name}};" ^
    "$files | ft;" ^
    "$number=Read-Host 'Введите порядковый номер файла';" ^
    "if ($number -eq '*') {" ^
        "$files | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "} else {" ^
        "$files | where {$_.number -eq $number} | foreach {Copy-Item -Path ('%source%\' + $_.Name) -destination '%destination%' -force}" ^
    "}"
pause
exit
0
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10
02.04.2025, 15:10  [ТС]
Да! Так сработало... Спасибо большое...
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
02.04.2025, 15:11
Alex_Zorg, не за что
0
 Аватар для Angry Old Man
3047 / 749 / 313
Регистрация: 26.03.2022
Сообщений: 1,400
Записей в блоге: 1
02.04.2025, 17:28
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@Echo Off &Cls
    Set "BoxIn=Z:\Box_In"
    Set "BoxOut=Z:\Box_Out"
    Set "Mask=*.wim *.esd"
        
    Pushd "%BoxIn%"||(Echo Folder "%BoxIn%" not found &Pause &Exit /B 2)
    
    Set /A n=1000000
    Set /A m=0
    For /f "usebackq delims=" %%f IN (`2^>nul Dir /B %Mask%`) Do (
        Set /A n+=1, m+=1
        Call Echo %%m%%. %%f
        Call Set "@%%n%%=%%f"
    )
    If %m% EQU 0 (Echo Files "%Mask%" In "%BoxIn%" not found. Cancel. &Pause &Exit /B 2)
    :Begin
        Echo.
        Echo Введите номер файла для копирования
        Echo либо * для копирования всех  файлов
        Set /P i=либо N для завершения ^>
        If /I "%i%"=="N" Exit /B
        If "%i%"=="*" ((For /f "usebackq delims=" %%f IN (`2^>nul Dir /B %Mask%`) Do Echo %%f &>nul XCopy /D "%%f" "%BoxOut%\") &Pause &Exit /B)
        Echo %i%| >nul FindStr /R /C:"^[1-9][0-9]*$"||(Echo The entered number "%i%" is incorrect &GoTo :Begin)
        If %i% GTR %n% (Echo The entered number "%i%" is incorrect ^>%n% &GoTo :Begin)
        Set /A k=1000000+%i%
        Call Set "Str=%%@%k%%%"
        
        >nul XCopy /D "%Str%" "%BoxOut%\"&&Echo             "%Str%" "%BoxOut%\"
        Set "i="
        GoTo :Begin
Pause
Exit /B
0
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10
02.04.2025, 18:15  [ТС]
Angry Old Man , , то что надо...
Находит, копирует как и хотелось. Спасибо большое.
У меня почему-то криво отрабатывает строка:
Windows Batch file
1
Echo %i%| >nul FindStr /R /C:"^[1-9][0-9]*$"||(Echo Введенное число "%i%" неверно &GoTo :Begin)
При вводе числа больше, я получаю не:
Windows Batch file
1
(Echo Введенное число "%i%" неверно &GoTo :Begin)
а выводит сообщение: "Неправильно указан диск" и на повторный круг...

Тем ни менее ввод неверного числа не пропускает... Спасибо!!!
Миниатюры
Вывод в список несколько типов файлов по расширению  
0
 Аватар для Angry Old Man
3047 / 749 / 313
Регистрация: 26.03.2022
Сообщений: 1,400
Записей в блоге: 1
02.04.2025, 18:39
Alex_Zorg, Виновааат!!!! Замените 24 строку
Windows Batch file
1
        If %i% GTR %m% (Echo The entered number "%i%" is incorrect ^>%m% &GoTo :Begin)
0
0 / 0 / 0
Регистрация: 07.08.2021
Сообщений: 10
02.04.2025, 18:48  [ТС]
Angry Old Man, теперь отлично отрабатывает ...
Ещё раз спасибо большое за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2025, 18:48
Помогаю со студенческими работами здесь

Проверка существования файлов с несколькими расширениями
Всем привет, искал искал, так и не нашел тему с обсуждением &quot;bat&quot; файлов, так что переместите тему, если что. Итак к делу. Пример:...

Указать несколько масок расширений файлов в одной команде
Ситуация такая: надо запускать 7zip для архивации всех файлов в определенной локации по маске Пробую делать: D:\7za.exe a -t7z...

Переименовать файлы с определенным расширением на нескольких жестких дисках
Всем привет! Помогите разобраться чет не получается( Суть такая: Нужен батник чтобы он находил все файлы с расширением .xml на нескольких...

Как записать несколько расширений файлов в командной строке?
xcopy /C /H /R /Y /I /K c:\Windows\pr*.exe *.com *.bat g:\ Нужно скопировать исполнительные файлы с папки Windows, которые начинаются...

Помогите разработать пакетный файл clear.bat, на вход которого передается список расширений файлов
Разработать пакетный файл clear.bat на вход которого передается список расширений файлов (например, clear.bat pas java cpp). Пакетный файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru