Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Bat; поиск по определенным параметрам 
:(
    Опции темы
Shadowlord
Дата 4.2.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: нет
Всего: 5



Возможно ли в windows написать батник который будет искать файлы вот по такому условию "В имени есть цифры, в расширении цифр нет."


Это сообщение отредактировал(а) Shadowlord - 4.2.2009, 21:39
PM MAIL   Вверх
Akina
Дата 4.2.2009, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 42
Всего: 454



Формально можно, но это будет тот ещё крокодил... почему не написать VBS-скрипт?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Shadowlord
Дата 5.2.2009, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: нет
Всего: 5



Задача стоит написать батник, нужно будет дальше использовать. Возможно это задания как раз для сравнения, но что то я не могу сообразить как это сделать
PM MAIL   Вверх
01MDM
Дата 5.2.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Shadowlord, если правильно понял, то нужно найти файл(ы), который содержит цифры в имени и у которого нет цифр в расширении

Код

@echo off
for /f "tokens=*" %%i in ('dir /b /s /a-d "C:\Some Path\To\Folder"') do (
    echo %%~ni | findstr [0-9] 1>nul && (
        echo %%~xi | findstr /v [0-9] 1>nul && echo %%~nxi
    )
)


Будут рекурсивно найдены файлы, удовлетворяющие условию задачи, из некой корневой папки (любой).
Если надо полные пути к файлам, то последнее `echo.....` замени на `echo %%~fnxi`

Это сообщение отредактировал(а) 01MDM - 5.2.2009, 10:00


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Shadowlord
Дата 5.2.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: нет
Всего: 5



А возможно ли заставить его искать в том каталоге  из которого его запустили?




Это сообщение отредактировал(а) Shadowlord - 5.2.2009, 10:53
PM MAIL   Вверх
01MDM
Дата 5.2.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Shadowlord, 

Цитата

А возможно ли заставить его искать в том каталоге  из которого его запустили?


Убери указание каталога после `dir /b /s /a-d`

ты наверное имел ввиду нечто вроде:

Код

@echo off
chcp 1251 1>nul
(
echo ^<html^>
echo ^<head^>
echo ^<title^>Lab_1</title^>
echo ^</head^>
echo ^<body^>
echo ^<h3^>Hello World!^</h3^>
echo.
echo ^<h4^>Задание №1^</h4^>
echo ^<dt^>В имени есть последовательность "ab"^</dt^>
echo ^<dt^>    выполняем `dir *ab*`^</dt^>
dir *ab*
echo.
echo ^<h4^>Задание №2^</h4^>
echo ^<dt^>В имени есть цифры, в расширении цифр нет^</dt^>
echo ^<pre^>
echo for /f "tokens=*" %%i in ^('dir /b /s /a-d'^) do ^(
echo    echo %%~ni ^| findstr [0-9] 1^>nul && ^(
echo        echo %%~xi ^| findstr /v [0-9] 1^>nul && echo %%~nxi
echo    ^)
echo ^)
echo ^</pre^>
call:write_task
echo ^</body^>
echo ^</html^>
) 1>>out.html

:write_task
for /f "tokens=*" %%i in ('dir /b /s /a-d') do (
   echo %%~ni | findstr [0-9] 1>nul && (
       echo %%~xi | findstr /v [0-9] 1>nul && echo ^<dt^>%%~nxi^</dt^> 1>>out.html
   )
)



Это сообщение отредактировал(а) 01MDM - 5.2.2009, 11:30


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Shadowlord
Дата 5.2.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: нет
Всего: 5



собственно да, только не мог бы ты пояснить как это то дело работает, да и возможно ли указывать  директорию в которой будет идти поиск
к примеру 1.bat c:\123
PM MAIL   Вверх
01MDM
Дата 5.2.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Shadowlord, если тебе надо указать директорию в качестве параметра к батнику, то тогда так:

Код

for /f "tokens=*" %%i in ('dir /b /s /a-d %1')......



--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Shadowlord
Дата 5.2.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 28.11.2006

Репутация: нет
Всего: 5



01MDM,  не подскажешь где можно про все это почитать сайт какой или книжку
пытался запустить твой код выдает ошибку
"Синтаксическая ошибка в имени файла, имени папки или метке тома.
"(" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом."
 вот такой вариант работает
Код

@echo off
set OUTPUT=out.html

if "%STDOUT_REDIRECTED%" == "" (
    set STDOUT_REDIRECTED=yes
    cmd.exe /c %0 %* >%OUTPUT%
    exit /b %ERRORLEVEL%
)

echo ^<html^>
echo ^<head^>
echo ^<title^>This is a greeting page^</title^>
echo ^</head^>
echo ^<body^>
echo Hello World! ^<p^>
echo Весь список файлов в директории ^<p^>
dir /b
echo  ^<p^>
echo Задание 1: ^<p^>
dir  /b *ab*
echo  ^<p^>
echo Задание 2: ^<p^>
@echo off
for /f "tokens=*" %%i in ('dir /b /s /a-d ') do (
    echo %%~ni | findstr [0-9] 1>nul && (
        echo %%~xi | findstr /v [0-9] 1>nul && echo %%~nxi
    )
)

echo ^</body^>
echo ^</html^>




Вот пытаюсь найти все файлы имя которых содержит подстроку ab
dir %1 /b  *ab* 
а в результате получаю список файлов лежащих в папке указанной в качестве  параметра и список файлов содержащих подстроку из текущей директории,  как его заставить искать в то что параметром указана

Это сообщение отредактировал(а) Shadowlord - 5.2.2009, 13:03
PM MAIL   Вверх
01MDM
Дата 5.2.2009, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29




dir /b "%~1\*ab*"


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.