Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
CODeRUS
Зарегистрирован: 19.10.2007 Сообщения: 3
|
Добавлено: Вс Ноя 18 2007 19:47 Заголовок сообщения: Список файлов находящихся в папке |
|
|
Как создать малой кровью такой список? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вс Ноя 18 2007 20:19 Заголовок сообщения: |
|
|
cd c:\CATALOG
dir > c:\LIST_FILES.TXT
Вот и все. |
|
Вернуться к началу |
|
|
CODeRUS
Зарегистрирован: 19.10.2007 Сообщения: 3
|
Добавлено: Пн Ноя 19 2007 14:51 Заголовок сообщения: |
|
|
Благодарю! Подошёл вариант
dir > all-files.txt /B /A-D /OE |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Ноя 19 2007 18:15 Заголовок сообщения: |
|
|
Молодец! |
|
Вернуться к началу |
|
|
VeL
Зарегистрирован: 18.01.2006 Сообщения: 521 Откуда: Харьков
|
Добавлено: Пн Ноя 19 2007 18:32 Заголовок сообщения: |
|
|
А если чуть усложнить задачу, например чтобы этот список файлов был например в массиве. Чтобы можно было например организовать цикл чтобы каждый из файлов например можно было отправлять по FTP каким нить аплоадером?
Ну или как например построчно спомощью скрипта прочитать этот файл в переменную? желательно если это будет массив, и можно ли спомошью скрипта получить колличество строк в файле?
В линуксе то точно знаю что можно, и знаю как, но как простите за ламерский вопрос это делается виндовым cmd? _________________ Best regards |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Ноя 19 2007 21:01 Заголовок сообщения: |
|
|
Поставь Cygwin и делай все тоже самое, что и в Линуксе. Кто мешает-то? Думаю что даже многие Линуксовые скрипты пойдут у тебя без модификации. |
|
Вернуться к началу |
|
|
VeL
Зарегистрирован: 18.01.2006 Сообщения: 521 Откуда: Харьков
|
Добавлено: Пн Ноя 19 2007 21:50 Заголовок сообщения: |
|
|
Ну а все же решается вышеизложенная задача именно вындовым батником? Нехотелось бы просто для одной простой задачи ставить Cygwin _________________ Best regards |
|
Вернуться к началу |
|
|
grf
Зарегистрирован: 05.04.2005 Сообщения: 1242 Откуда: Москва
|
Добавлено: Пн Ноя 19 2007 22:19 Заголовок сообщения: |
|
|
решал подобную задачу. Надо было в большом архиве, до фига мелких файлов в подпаках, разыскивать новые, изменившиеся и их бэкапить на DVD болванки.
ntbackup пользоваться умею, но что-то он не прокатывал, толи попутно надо было вести еще и список измененых файлов, толи еще какая фигня.
Не вспомню сейчас заморочки. А решена была с помощью маленькой проги, что-то типа dirlist или в таком роде, завтра гляну на работе, которая просто создает тектстовый файл в котором каждая строка - это путь к файлу, файл и дополнительные атрибуты, там время создания, изменения, архивный, системный и прочее в таком роде. а потом с этим вайлом уже очень удобно работать, хочешь распарси его на отдельно путь, имя файла, время, хочешь еще обрабатывай как надо. в общем легкая и удобная для дальнейшей работы прога ))))))))))))))))) поищи в инете, наверняка найдешь.
_________________ Errare humanum est |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Ноя 19 2007 22:51 Заголовок сообщения: |
|
|
Цитата: | Ну а все же решается вышеизложенная задача именно вындовым батником |
Набрать cmd /? и ВНИМАТЕЛЬНО почитать.
После этого набрать FOR /? и ОЧЕНЬ ВНИМАТЕЛЬНО прочитать. Там ответ на твой вопрос. Работает в Win2000 и выше. |
|
Вернуться к началу |
|
|
dubrava
Зарегистрирован: 21.11.2007 Сообщения: 14
|
Добавлено: Ср Ноя 21 2007 16:05 Заголовок сообщения: |
|
|
Цитата: |
А если чуть усложнить задачу, например чтобы этот список файлов был например в массиве. Чтобы можно было например организовать цикл чтобы каждый из файлов например можно было отправлять по FTP каким нить аплоадером?
|
Код: |
@echo off
for /f "tokens=*" %%a in ('dir /b /a-d') do (
echo YourCommand "%%~dpnxa"
)
|
Цитата: |
можно ли спомошью скрипта получить колличество строк в файле?
|
Код: |
@echo off
set count=0
for /f %%a in (file.txt) do set /a count+=1
echo %count%
|
Покажет кол-во строк кроме пустых |
|
Вернуться к началу |
|
|
VeL
Зарегистрирован: 18.01.2006 Сообщения: 521 Откуда: Харьков
|
Добавлено: Ср Ноя 21 2007 21:38 Заголовок сообщения: |
|
|
Ребята, а можно ли с помошью командной строки из батника получить размер файла находящегося на ftp сервере?
Вкратце обрисую задачу.
Есть центральный фрт сервер управляющей компании, на который по регламенту необходимо закачивать выгрузки баз данных 1С. Размер файла выгрузки около 25 метров. Канал связи желает знать лучшего (max 115k). соответственно при плохой связи лучше разбивать файл архиватором на части и отправлять частями, чтобы при обрыве связи докачивать не полностью весь файл сначала а начинать с файла на котором произошол обрыв, таким образом можно сэкономить время и трафик. Как работать с группой фаллов в каталоге спасибо Вам огромное вы подсказали. Знаю что с помощью виндовс утилиты такой как ftp.exe можно пересылать файлы на удаленный фтп сервер. Но вот вопрос, каким образом можно в батнике определить что произошол обрыв связи по фтп? и как можно с помощью этого же батника определить размер закачанного на удаленный фтр сервер файла с целью проверки корректрости его закачки, чтобы потом можно было повторить закачку? _________________ Best regards |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Ср Ноя 21 2007 22:14 Заголовок сообщения: |
|
|
ftp имеет опции, позволяющие передать список команд.
Играясь с командами закачки и чтения списка каталогов можно сделать нужное.
Пусть в файле send_ftp.txt будет список команд для качачки файла.
Пусть в файле list_files.txt будут команды, выполняюшие коннект к серверу и выполняющие команду dir.
Закачиваем:
ftp -s:send_ftp.txt
Проверяем что что качали:
ftp -s:list_files.txt > list_ftp.txt
Парсим файл list_ftp.txt:
Тут сам покумекай, мне лень. Внимательное чтение for /? даст нужные идеи.
Если обнаружено, что закачали файл меньшей длины, то закачиваем его заново. Да, да! Заново! Потому что передача с нужного места в протоколе FTP предусмотрена только при download, а не при upload, как у вас. Что делать? Смотреть в сторону rsync. Это более правильный протокол. |
|
Вернуться к началу |
|
|
|