Показать полную графическую версию : Копирование одноимённых файлов
BloodDick
30-04-2012, 20:08
Ребят, посдкажите как сделать так, чтобы одноимённые файлы, которые я задал для поиска, сохранялись в папку все. А не только один файл.
Приведу пример : я задал найти на компьютере текстовый документ "Музыка", этот документ есть на диске "C" и на диске "D"... А в папку сохранения сохраняется только один файл. Надеюсь доходчиво объяснил)
Надеюсь доходчиво объяснил) »
Нет:
я задал найти на компьютере текстовый документ "Музыка" »
Как именно задали?
Foreigner
30-04-2012, 20:57
BloodDick, надо копировать с переименованием или с другим путем. Как ты видишь конечную реализацию?
BloodDick
30-04-2012, 20:58
@ECHO OFF
dir "C:\музыка.txt" "D:\музыка.txt"
S /B > c:\filelist.txt d:\filelist.txt f:\filelist.txt
md d:\13
for /F "tokens=*" %%i in (c:\filelist.txt) do copy /Y "%%i"
"D:\13\%%~nxi"
del c:\filelist.txt
del d:\filelist.txt
del f:\filelist.txt
чтобы например сохранялось: Музыка, музыка(1).
как то так.
а сохраняется только музыка. Тоесть один файл.
Foreigner
30-04-2012, 21:03
как то так. »
@echo off
setlocal
2>nul md "d:\folder"
pushd "d:\folder"
for %%i in (c d f) do (
for /f "tokens=*" %%j in (' dir /b /s /a-d "%%i:\Музыка.txt" ') do call:copy "%%j"
)
popd
goto:eof
:copy
if "%~dp1"=="d:\folder\" (goto:eof)
set "file="
if not exist "%~nx1" copy %1 && goto:eof
:check
set /a cnt+=1
set "ind=000%cnt%"
set "file=%~n1_[%ind:~-4%]%~x1"
if exist "%file%" goto:check
copy %1 "%file%"
Где d:\folder -- путь для копирования
BloodDick
30-04-2012, 21:08
спасибо, это всё понел, всё получилось. А где сдесь прописано где именно ищет? for %%i in (c d f) - это?
Ребят всё разобрался, благодарю)
Foreigner
30-04-2012, 21:12
А где сдесь прописано где именно ищет? »
for %%i in (c d f) -- диски на которых ищет
BloodDick
30-04-2012, 21:15
Можете ещё подсказать, что прописать чтобы искало файлы , по заданому слову. Тоесть чтобы находила и копировала, все файлы к примеру со словом "Яблоко".
BloodDick, для русского языка предусмотрено несколько кодировок.
BloodDick
30-04-2012, 21:48
BloodDick, для русского языка предусмотрено несколько кодировок. »
Хотябы одну из них)
Foreigner
30-04-2012, 21:55
все файлы к примеру со словом "Яблоко". »
В названии или с содержимым?
BloodDick
30-04-2012, 21:56
с содержимым.
к примеру название файла "Новый текстовый документ"
Но он скопировался в папку потому что у него есть слово которое я задал "Яблоко".
Как такое осуществить?
Foreigner
30-04-2012, 22:16
с содержимым. »
если искомое слово кириллическое, то тогда можно с помощью grep (http://gnuwin32.sourceforge.net/packages/grep.htm), т.к. findstr не находит
grep -rli "яблоко" *.*
findstr /m /s /i "test" *.*
BloodDick
30-04-2012, 22:22
другово способа нет?
Foreigner, в какой кодировке будет вестись поиск в:
grep -rli "яблоко" *.*
?
Anonymоus
01-05-2012, 03:05
Iska, в той, в которой сохранен bat-файл. Если это UTF-8, надо BOM при сохранении отключать.
Anonymоus, спасибо, ясно. В текущей кодировке.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.