Показать полную графическую версию : Поиск нужного файла в папке BAT-файл
networker831
15-11-2021, 11:53
Добрый день! Помогите пожалуйста написать батник который сравнивает номера (записанные к примеру в EXEL-таблицу) с именем файла в папке и выбирает файлы с совпадением в другую папку.
Записаны номера:
123
456
789
Нужно найти файлы содержащие "123", "456", "789". Как это написать?
к примеру в 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
@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.