PDA

Показать полную графическую версию : Поиск файлов по маске и сохранение в текстовый фай


SilentTwilight
07-03-2013, 12:44
Сейчас веду поиск по форуму, но одновременно и задам вопрос (если что, тапками не пинайте).

Задача такая:

1. Запускается файл
2. В папке, где запущен файл, начинается поиск файлов по маске (*.smali). C подпапками
3. Все найденные файлы сохраняются в текстовый файл с папкой программы в определённом виде:
file.exe "C:\Files\File1.smali" "C:\Files2\File1.smali"
file.exe "C:\Files\File2.smali" "C:\Files2\File2.smali"

Возможно ли это?

megaloman
07-03-2013, 14:06
Все найденные файлы файлы сохраняются в ... Если делать копию а исходные оставить на месте xcopy /s /Y D:\Files\*.Smali D:\Files2\

SilentTwilight
07-03-2013, 14:08
не то. Список файлов сохраняется в файл в виде текста.

megaloman
07-03-2013, 16:24
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set N1=D:\Files
Set N2=D:\Files2

FOR /R %N1% %%f IN (*.smali) DO (
Set Name=%%f
Echo file.exe "%%f" "!Name:%N1%=%N2%!"
)

SilentTwilight
07-03-2013, 17:36
Вот! Уже намного ближе к истине! :)

Skif-N1
31-03-2013, 19:54
Я себе на пару нечто подобное делал, может поможет))
@Echo off
:m1
Echo Выберите способ представления оглавления:
Echo.
echo 1 - По времени создания (Возрастание)
echo 2 - Убывание
echo 3 - По размеру (Возрастание)
echo 4 - Убывание
echo 5 - exit
echo.
Set /p choice=Ваш выбор:
chcp 1251
if "%choice%"=="1" dir /b /od /s /a *.doc *.txt >1.txt
if "%choice%"=="2" dir /b /o-d /s /a *.doc *.txt >2.txt
if "%choice%"=="3" dir /b /os /s /a *.doc *.txt >3.txt
if "%choice%"=="4" dir /b /o-s /s /a *.doc *.txt >4.txt
if "%choice%"=="5" exit /b
if "%choice%"=="%" echo error
Echo.
:error
cls
goto m1
Echo.

Dragokas
02-04-2013, 10:02
Skif-N1, не моможет.
+ у Вас в примере лишний знак % здесь - "%".

SilentTwilight
04-04-2013, 12:13
Супер! примерно это и нужно для начала
Вернее, строка

dir /b /od /s /a *.txt >1.txt

В текстовый файл записывается именно то, что нужно - просто список файлов с полным именем!

Далее буду собирать из других частей

megaloman
04-04-2013, 13:17
SilentTwilight, Оказывается, в моём примере я забыл сделать вывод в файл, а Вы вразумительно мне не возразили :lol: @Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set N1=D:\Files
Set N2=D:\Files2
Set Out=D:\Smali.kuku

Del %Out% >nul 2>nul

FOR /R %N1% %%f IN (*.smali) DO (
Set Name=%%f
Echo file.exe "%%f" "!Name:%N1%=%N2%!" >>%Out%
)

SilentTwilight
05-04-2013, 00:10
megaloman, твой способ очень хорош, но сохранение в файл мне уже не надо :) Сделал сразу вызов...
Итак...
Завтра буду проверять и расширять функционал. Итак, вот что сейчас:

@Echo off
SetLocal EnableExtensions EnableDelayedExpansion
chcp 1251

Echo Делаем копию папки
xcopy /s /Y smali\*.Smali smali2\

Echo Делаем декодирование
Set N1=smali\
Set N2=smali2\
Set Java=%programfiles%\Java\jdk1.7.0_11\bin

FOR /R %N1% %%f IN (*.smali) DO (
Set Name=%%f
echo Encoding: "%%f"
"%Java%\native2ascii.exe" -reverse -encoding utf-8 "%%f" "!Name:%N1%=%N2%!"
)

pause


Теперь всё, вроде, работает.
Дело в том, что файлы smali с не латинским шрифтом (я перевожу китайские программы для Андроида) зашифрованы в другой кодировке (в виде \uХХХХ) и для декодирования есть только 2 программы - стандартная явовская консольная утилита и BabelPad. Обе утилиты неудобны.
Этот модуль декодирует все строки, где есть текст \uХХХХ в нормальный шрифт. Далее я могу спокойно сравнить файлы (изменены будут только нужные текстовые строки) и перевести на русский. А, поскольку декодирование происходит в UTF-8, шифровка не требуется )))




© OSzone.net 2001-2012