Показать полную графическую версию : Поиск файлов по маске и сохранение в текстовый фай
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
Вот! Уже намного ближе к истине! :)
Я себе на пару нечто подобное делал, может поможет))
@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.