Можно ли реализовать такое с переменными Windows Shell?
Коллеги, категорически приветствую!
Знаю Windows Shell на очень школьном уровне. Нужно реализовать одну задачу. Хочу узнать, можно ли это сделать с помощью набора команд.
Запуск файла *.cmd
1. Пользователь вводит переменную, 6 цифр – <123456>
2. По заданному пути ищет файл формата – bukva<123456>.txt
3. Если файла нет в этой папке, то ищет во второй папке, по другому пути.
4. Если нашел, то копирует на флешку эти файлы.
Может ли такое потянуть командная строка или это надо программку писать?
SET /p VAL="Введите цифры: "
FOR %%A IN ( d:\111\FILE_%VAL%_FILE*.txt ) DO COPY %%A f:\
SET /p VAL="Введите цифры: "
FOR %%A IN ( d:\222\FILE_%VAL%_FILE*.txt ) DO COPY %%A f:\
Ого! Спасибо!
Буду изучать. При беглом осмотре возник вопрос – Shell весь такой навороченный или это команда FOR , является одной из самых сильных возможностей?
Или наоборот, одной из самых базовых?
Smenov, Windows PowerShell это не Command Prompt, хотя все команды последнего выполняются в рамках обратной совместимости. В вашем случае вы поставили тег CMD/BAT. Да и расширенные возможности PowerShell здесь излишни.
@echo off
set "dir1=c:\tmp\dir1"
set "dir2=c:\tmp\dir2"
set "dstdir=c:\tmpdst"
set /p val="Введите цифры: "
for /f %%a in ('dir /a-d /b "%dir1%\bukva%val%.txt" "%dir2%\bukva%val%.txt" ') do copy %%a "%dstdir%"
Константин Цветков, res2001,
Друзья, спасибо за помощь!
Вроде как пошло, но я с этим синтаксисом не знаком, а сделать этот костыль надо быстро.
В связи с этим прошу помощи. И заранее благодарен.
Смоделировал ситуацию.
Папка 1 - d:/111
FILE_144004_FILE.txt
FILE_144004_FILE_2.txt
Папка 2 - d:/222
FILE_145005_FILE.txt
FILE_145005_FILE_2.txt
Записать нужно на флешку, диск f:/
Запускаю такой код:
@echo on
set "dir1=d:\111"
set "dir2=d:\222"
set "dstdir=f:\"
set /p val="Введите цифры: "
for /f %%a in ('dir /a-d /b "%dir1%\FILE_%val%_FILE.txt" "%dir2%\FILE_%val%_FILE.txt"') do copy %%a "%dstdir%"
pause >nul
Константин Цветков, да, немного ошибся.
В каждой паке ищется по два файла, соответственно - должно быть 4 записи путей
(
"d:\111\FILE_%VAL%_FILE_1*.txt"
"d:\222\FILE_%VAL%_FILE_2*.txt"
Константин Цветков,
это файлы-примеры.
Настоящие выглядят так
123456_TEXT_TEXT_1.ext
456789_TEXT_TEXT_2.ext
где первые 6 цифр, уникальное значение - переменная
Папок - 4 шт
Использую две маски -
123456*1.ext
123456*2.ext
прохожусь по всем папкам
Маски, потому что в этих папках есть и другие файлы, которые содержат те же самые уникальные цифровые значения, но разные текстовые _TEXT_TEXT