![]() |
Batник по переносу файлов при наличии русского слова
Добрый день, подскажите пожалуйста.
Мне нужно создать батник, который из папки D:\IN перемещал в папку D:\OUT все файлы(txt), которые содержат слово на русском языке, например "привет". код @Echo on Set TEXT=привет Set DIR1=D:\in Set DIR2=D:\out :start For /F "Delims=" %%i In ('FindStr /SMC:"%TEXT%" "%DIR1%\*" /b/s 2^>nul') Do Move "%%i" "%DIR2%" >>output.txt pause; goto :start Пробовала добавлять строки chcp 1251>nul chcp 866>nul все равно не переносит файлы. При этом если искать латинские буквы или цифры, все работает. такой поиск с русским словом вообще возможно реализовать?если да, то как? |
Цитата:
|
1251(ANSI-Кирилица)
|
У findstr из года в год не лады с кириллицей, так что нет ничего удивительного. Предлагаю указывать в батнике кракозябры:
Код:
@echo off Как вариант grep, батник точно такой же, но кодировка 1251 |
Цитата:
Код:
$sSourceFolder = "E:\Песочница\0280\In" |
Iska, Я бы тоже.
Код:
gci "d:\in\*.txt" | % { |
Foreigner:
Код:
(gc $_) -contains "привет" Цитата:
|
Iska, похоже, что -contains работает только при полном совпадении элемента массива (т.е в данном случае строки в файле)
Тогда в зависимости от задачи -- "привет" отдельное слово: Код:
if (gc $_ | select-string "\bпривет\b") { $_ } |
Спасибо большое всем!)
|
Foreigner, я решил по простому — преобразовывал массив в строку: «[string]…». Хотя, конечно, на гигабайтных логах делать такое абсолютно противопоказано.
|
Время: 01:39. |
Время: 01:39.
© OSzone.net 2001-