Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск с помощью Bat ника

Ответить
Настройки темы
CMD/BAT - Поиск с помощью Bat ника

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Диски есть файлы, с помощью батника надо искать определенной слова в файлах и все файлы содержащий этот слова скопировать на другой каталог!

Благодарю оказавших помощь!

Отправлено: 12:48, 28-09-2013

 

Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#Powershell script.
#Don't forget unlock script executing by 
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
$SourceDir="C:\From\"
$DestDir="C:\To"
#выбрать нужную кодировку файла между ASCII, UTF8, UTF7, UTF32, Unicode, OEM
$Encoding=[Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding]::UTF8
gci "$SourceDir\*" -Recurse -Force | % {
    if ((gc $_.FullName -Encoding $Encoding | Select-String -pattern "Какая-то строка") -ne $null) {
        Copy-Item -Path $_.FullName -Destination $DestDir -Recurse -Force
    }
}

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:04, 28-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за поддержку но мне надо bat ник!
Я организовал поиск проблема с копированием файла...

Отправлено: 08:42, 30-09-2013 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna,
Код: Выделить весь код
@echo off
setlocal

set "from=C:\Some Folder"
set "to=D:\Some Folder"
set "words=\<qwerty\> \<monday\> \<tomorrow\>"

2>nul md "%to%"

for /f "tokens=1 delims=:" %%i in (' findstr /s "%words%" "%from%\*" ') do call:copy "%%i"

goto:eof

:copy
set "file=%~nx1"
set "cnt=0"

:check
set /a cnt+=1
if not exist "%to%\%file%" (

    copy %1 "%to%\%file%"

) else (

    set "file=%~n1(%cnt%)%~x1"
    goto:check

)
Ищет в папке "C:\Some Folder" и в подпапках
Слова "qwerty", "monday" и "tomorrow"
Копирует с проверкой на имя в "D:\Some Folder"

Последний раз редактировалось Foreigner, 30-09-2013 в 09:37.


Отправлено: 09:31, 30-09-2013 | #4


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, Спасибо щя проверим!

Отправлено: 09:44, 30-09-2013 | #5


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, Не! пишет что не удалось найти указанного файла... Я смотрел кода
Цитата Foreigner:
"%from%\*" »
ошибка не в этом строке?

Отправлено: 10:13, 30-09-2013 | #6


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna:
Цитата:
ошибка не в этом строке?
Нет, это ошибка findstr.exe
Выдает пути в 866, в случае если названия файлов или путь к ним содержат кириллицу. Предлагаю вариант с использованием grep:
Код: Выделить весь код
@echo off
setlocal
1>nul chcp 1251

set "from=C:\Some Folder"
set "to=D:\Some Folder"
set "words=(Hello|Привет|Goodbye)"

2>nul md "%to%"

for /f "tokens=1 delims=:" %%i in (' grep -RE "%words%" "%from%\*" ') do set "f_%%~si=%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do call:copy "%%i" 
goto:eof

:copy
set "fullname=%~1"
set "file=%~nx1"
set "cnt=0"
                                                                           
:check
set /a cnt+=1
if not exist "%to%\%file%" (

    copy "%fullname:/=\%" "%to%\%file%"

) else (

    set "file=%~n1(%cnt%)%~x1"
    goto:check

)

Отправлено: 12:03, 30-09-2013 | #7


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Foreigner »
Дал вот такую сообщения!
C:\Temp\1>1
grep: C:\Temp\1\1\*: No such file or directory
Переменная среды f_ не определена

Я с grepам не работал? Дальше что делать?

Отправлено: 17:07, 30-09-2013 | #8


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Исправил, попробуйте:
Код: Выделить весь код
@echo off
setlocal
1>nul chcp 1251

set "from=C:\Some Folder"
set "to=D:\Some Folder"
set "words=(Hello|Привет|Goodbye)"

2>nul md "%to%"

for /f "tokens=2 delims=:" %%i in (' grep -RE "%words%" "%from%\*" ') do call:set "%%i"
for /f "tokens=2 delims==" %%i in (' set f_ ') do call:copy "%%i" 
goto:eof

:copy
set "fullname=%~1"
set "file=%~nx1"
set "cnt=0"
                                                                           
:check
set /a cnt+=1
if not exist "%to%\%file%" (

    copy "%fullname:/=\%" "%to%\%file%"

) else (

    set "file=%~n1(%cnt%)%~x1"
    goto:check

)
goto:eof

:set
set "s=%~1"
set "s=%s: =_%"
set "f_%s%=%~1"

Последний раз редактировалось Foreigner, 30-09-2013 в 18:16.


Отправлено: 18:10, 30-09-2013 | #9


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Foreigner »
Цитата muqanna:
grep: C:\Temp\1\1\*: No such file or directory
Переменная среды f_ не определена »
тот же сообщению выдает!

Отправлено: 07:31, 02-10-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск с помощью Bat ника

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле InVariable Скриптовые языки администрирования Windows 4 22-05-2015 20:06
CMD/BAT - [решено] Звуковой сигнал с помощью bat ника! muqanna Скриптовые языки администрирования Windows 7 08-07-2013 20:38
CMD/BAT - С помощью bat-ника заблокировать сайт DarkSmail Скриптовые языки администрирования Windows 2 07-05-2013 16:11
CMD/BAT - [решено] Как с помощью bat-ника октрыть\закрыть лоток привода? Nun-Nun Скриптовые языки администрирования Windows 9 15-06-2011 21:56
CMD/BAT - [решено] Как с помощью bat-ника записать названия папок в текстовый файл? Nun-Nun Скриптовые языки администрирования Windows 9 23-02-2010 20:15




 
Переход