PDA

Показать полную графическую версию : Поиск нужного файла в папке BAT-файл


networker831
15-11-2021, 11:53
Добрый день! Помогите пожалуйста написать батник который сравнивает номера (записанные к примеру в EXEL-таблицу) с именем файла в папке и выбирает файлы с совпадением в другую папку.

Записаны номера:
123
456
789
Нужно найти файлы содержащие "123", "456", "789". Как это написать?

Elven
15-11-2021, 12:55
к примеру в excel или именно в excel? потому что если нужно ковыряться ИМЕННО в excel то за батники нужно забыть, и смотреть в powershell.
Если же исходный файл обычный текст, то можно посмотреть, но тут уже другие вопросы:
1. номером может быть только число или возможны буквенно-цифровые номера?
2. Если допустимы буквы то каких языков, в какой кодировке файл?
3. за концы строк тоже вопрос любят задавать
4. в каком месте упомянутый номер может располагаться в имени файла (только в начале, только в конце, вместо расширения, в середине названия)
5. сколько символов может быть в номере и/или фиксированное фиксированное количество?

ну вот это так, на вскидку... может еще какие вопросы возникнут.

networker831
15-11-2021, 13:10
Пусть простой текстовый файл. Прямо один в один задача: имеются номера (Только номера!!!) записаны в столбик в файле TXT:
1234
4567
...
8764

Нужно найти совпадаемые номера файлов с данными номерами и скопировать эти файлы в нужную папку.
Номера будут в названиях файлов, целиком т.е. 1234 файл будет 1234.jpg, 4567 - файл будет 4567.jpg и т.д.
количество символов - 4шт

megaloman
15-11-2021, 17:13
@Echo Off
cls
Set "FileTxt=Z:\Box_In\Пусть простой текстовый файл.txt"
Set "BoxIn=Z:\Box_In"
Set "Ext=jpg"
Set "BoxOut=Z:\Box_Out"

For /F "usebackq delims=" %%f In (`2^>nul more "%FileTxt%"`) Do (
If Exist "%BoxIn%\%%f.%Ext%" (
Echo Copy "%BoxIn%\%%f.%Ext%" "%BoxOut%\"
>nul Copy "%BoxIn%\%%f.%Ext%" "%BoxOut%\"
) Else (
Echo ???? File "%BoxIn%\%%f.%Ext%" not found
)
)
pause
Exit /B

alpap
16-11-2021, 02:17
@echo off
set "src=C:\1"
set "dst=C:\2"
set "scr=C:\file.txt"

pushd "%src%"
for /f "delims=" %%f in ('dir /a-d/b "*.jpg"^|findstr /g:"%scr%"') do >nul xcopy "%%f" "%dst%\"
popd
pause




© OSzone.net 2001-2012