Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Поиск файлов по маске и сохранение в текстовый фай (http://forum.oszone.net/showthread.php?t=255722)

SilentTwilight 07-03-2013 12:44 2106130

Поиск файлов по маске и сохранение в текстовый фай
 
Сейчас веду поиск по форуму, но одновременно и задам вопрос (если что, тапками не пинайте).

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

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 2106204

Цитата:

Все найденные файлы файлы сохраняются в ...
Если делать копию а исходные оставить на месте
Код:

xcopy /s /Y D:\Files\*.Smali D:\Files2\

SilentTwilight 07-03-2013 14:08 2106209

не то. Список файлов сохраняется в файл в виде текста.

megaloman 07-03-2013 16:24 2106306

Код:

@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 2106339

Вот! Уже намного ближе к истине! :)

Skif-N1 31-03-2013 19:54 2123025

Я себе на пару нечто подобное делал, может поможет))
PHP код:

@Echo off
:m1
Echo Выберите способ представления оглавления:
Echo.
echo 
По времени создания (Возрастание)
echo 
Убывание
echo По размеру (Возрастание)
echo 
Убывание
echo - exit 
echo.
Set /p choice=Ваш выбор
chcp 1251
if "%choice%"=="1" dir //od //*.doc *.txt >1.txt
if "%choice%"=="2" dir //o-//a  *.doc *.txt >2.txt
if "%choice%"=="3" dir //os //*.doc  *.txt >3.txt
if "%choice%"=="4" dir //o-//*.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 2124109

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

SilentTwilight 04-04-2013 12:13 2125557

Супер! примерно это и нужно для начала
Вернее, строка

Код:

dir /b /od /s /a  *.txt >1.txt
В текстовый файл записывается именно то, что нужно - просто список файлов с полным именем!

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

megaloman 04-04-2013 13:17 2125578

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 2125968

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

@Echo off
SetLocal EnableExtensions EnableDelayedExpansion
chcp 1251

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

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

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

pause 

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


Время: 22:07.

Время: 22:07.
© OSzone.net 2001-