|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск с помощью Bat ника |
|
|
CMD/BAT - Поиск с помощью Bat ника
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать Диски есть файлы, с помощью батника надо искать определенной слова в файлах и все файлы содержащий этот слова скопировать на другой каталог!
Благодарю оказавших помощь! |
|
Отправлено: 12:48, 28-09-2013 |
Пользователь Сообщения: 124
|
Профиль | Отправить 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 } } |
------- Отправлено: 15:04, 28-09-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Спасибо за поддержку но мне надо bat ник!
Я организовал поиск проблема с копированием файла... |
Отправлено: 08:42, 30-09-2013 | #3 |
Ветеран Сообщения: 1758
|
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 ) Слова "qwerty", "monday" и "tomorrow" Копирует с проверкой на имя в "D:\Some Folder" |
Последний раз редактировалось Foreigner, 30-09-2013 в 09:37. Отправлено: 09:31, 30-09-2013 | #4 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, Спасибо щя проверим!
|
|
Отправлено: 09:44, 30-09-2013 | #5 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, Не! пишет что не удалось найти указанного файла... Я смотрел кода
Цитата Foreigner:
|
|
Отправлено: 10:13, 30-09-2013 | #6 |
Ветеран Сообщения: 1758
|
muqanna:
Цитата:
Выдает пути в 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
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
C:\Temp\1>1 grep: C:\Temp\1\1\*: No such file or directory Переменная среды f_ не определена Я с grepам не работал? Дальше что делать? |
|
Отправлено: 17:07, 30-09-2013 | #8 |
Ветеран Сообщения: 1758
|
Исправил, попробуйте:
@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
|
Профиль | Отправить PM | Цитировать |
Отправлено: 07:31, 02-10-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|