Автоматизация операций с файлами
В-общем такая задача встала:
Есть папка Яндекс.Диска, внутри неё папка, скажем, OUT. В ней лежит вчерашний файл foo.rar Так вот каждый день мне нужно удалять вчерашний foo.rar Папка оказывается пустая. В неё я копирую папку 1 из одного места, папки 2 и 3 из другого места и файл 1 ещё откуда-нибудь. Пути этих файлов и папок известны и в рамках данной задачи не меняются, что задачу эту облегчает. Потом из них всех делаю .rar-файл, т.е. свеженький foo.rar. А потом файл 1, папки 1,2,3 удаляю. Остаётся только foo.rar (вернулись к тому, что было вначале). Затем я из контекстного меню выбираю пункт Яндекс-Диска скопировать публичную ссылку, через какое-то время файл заливается, ссылка оказывается в буфере, и эту ссылку я отправляю куда положено. ==== Как вы уже догадались, я хочу это дело автоматизировать. Сначала хотел сделать bat'ник. Ну, копировать папки и файлы это просто. А вот сделать rar (допустимо zip) сложнее. Не нашёл вменяемой консольной софтины под винду, которая делает архив, и забил. Винда, вроде как, сама умеет, но я почитал про канделябры, которые надо выписывать, и тоже забил. Так что до выяснения, можно ли ссылку на ЯДиск скопировать, даже и не дошло. ==== И вот я недавно вспомнил, что теперь в Винде есть встроенный баш, в котором есть замечательный zip -r name dir, и вообще на Линуксе вся эта задача (кроме пункта про ЯД) не стоила бы и выеденного яйца. Так вот, господа знающие, что там поподробнее с башем под виндой? Реально таким макаром через него сделать? Или есть ли другие способы решить поставленную задачу? |
Ответ: Автоматизация операций с файлами
У тебя же есть WinRAR? Или 7zip? У обоих есть консольные интерфейсы (см. офф сайт)
А почему не сделать на похепе cli утилиту - чому бы и нет, один фиг у тебя php интерпретатор пылится. Там тебе и zip и tar и язык знакомый с детства. Единственное, может, я фигню советую, так как не работал с яндекс диском, но там же есть WebDav? |
Ответ: Автоматизация операций с файлами
Цитата:
По поводу ЯД. Есть у него WebDav, лично я им пользуюсь на своём серваке, бэкапы сайтов на ЯД выпихиваю. Очень удобно, а главное - всё из консоли. Так что с выгрузкой проблем не будет, не знаю только как ссылку глобальную получить. |
Ответ: Автоматизация операций с файлами
Слово WebDav узнал только что впервые, на этот счёт ничего не скажу, но сегодня разбирался с Яндекс API (правда, дальше авторизации по OAuth чо-то не пошло, пока отложил), в списке API видел и Яндекс Диск, так что наверняка это всё реализуется (я использовал PHP). Один раз авторизовываешься, получаешь токен и он либо вечный, либо на очень долгое время (вроде от используемого API зависит). Я даже авторизацию через OAuth сделал в консольном PHP скрипте при помощи хитрожопого финта без использования web сервера. С rar архивами как-то работал, тоже не сразу нашёл подходящую консольную утилиту, но в итоге нашёл. К сожалению сейчас с ходу не вспомню какую именно. Но вообще обычно стараюсь работать с zip, потому что даже в 2016 году не все могут сходу rar распаковать, сталкивался с проблемами.
|
Ответ: Автоматизация операций с файлами
В-общем в связи с некоторыми другими операциями мне понадобилось сделать в Юнити кнопку, которая их делает.
Ну, раз такая сложная штука уже делается кнопкой в Юнити, почему бы не пойти дальше и не заставить её же копировать файлы? Тут обошлось без лишних операций: я просто WinRar'у консолью указываю какой архив создать (предварительно удалив старый) и кладу по очереди все файлы папки прямо в него, не копируя их никуда. Конечно совсем шик был бы если бы у меня в буфере оказывалась ссылка на файл на Яндекс.Диске. Но тут уже слишком сложно, не думаю, что это будет большая экономия времени. Поэтому я сделал вот что: после создания архива открывается мне окно эксплорера с этим архивом, чтобы я мог уже по нему правой кнопкой кликнуть и ссылку скопировать. Думаю, на этом я остановлюсь и пойду автоматизировать другие вещи, куда более остро в этом нуждающиеся. === Печально, что нужно иметь на компе WinRar. Я бы хотел всё же обойтись средствами самой Винды, т.к. если я этот скрипт дам коллеге, ему тоже придётся иметь Винрар на компе. И тут беда что я указываю путь к exe'шнику WinRar'а: Код:
string archieverExePath = @"C:\Program Files\WinRAR\WinRAR.exe"; Можно как-то узнать путь к exe'шнику программы в Винде если знаешь её название? Блин, да, на Линуксе таких проблем нет. Хотя вот упоминается, что есть чисто консольные версии винрара (уже, стало быть, не вин-) http://cects.com/using-the-winrar-co...ls-in-windows/ Может, проще просто сложить их в папочку с моими тулзами (позволяет ли это лицензия? должно ли меня это волновать?) |
Ответ: Автоматизация операций с файлами
Положи архиватор к консольке своей (у 7зипа вообще одним файлом можно), распространяй вместе с ним, запускай относительным путем.
|
Ответ: Автоматизация операций с файлами
Цитата:
7z.exe a -ep1 -r "C:\hui.rar" "C:\pizda.txt" "C:\MyFavouriteGaySexPhotosFolder" Схавает нечто подобное? |
Ответ: Автоматизация операций с файлами
Цитата:
7z.exe a "C:\backup.7z" -r "C:\Backup" |
Ответ: Автоматизация операций с файлами
Цитата:
Цитата:
|
Ответ: Автоматизация операций с файлами
Цитата:
|
Ответ: Автоматизация операций с файлами
Так а какие объективные причины использовать rar? А под zip куча решений есть, в том числе открытых и под любую ОС.
|
Ответ: Автоматизация операций с файлами
Рар это flac в мире архиваторов. Решение для компресофилов с налётом импринтинга. Чудовищное сжатие, имхо, дающее при современных технологиях копеечное преимущество, если только вы не сжимаете терабайты. Да и 7z, ЕМНИП, имеет показатели сжатия лучше, чем рар.
Для публичных сервисов, рар вместо zip - это как doc, вместо pdf. 1 http://forum.boolean.name/showthread.php?t=16435 2 http://forum.boolean.name/showthread.php?t=429 |
Ответ: Автоматизация операций с файлами
У меня тоже назрела проблема с автоматизацией. Задача следующая:
есть список отобранных файлов, расположенных ниже директории disc1\foo\. Необходимо сверить хеши между файлами из этого списка и аналогичными файлами расположенными по адресу disc2\bar\, и составить отчёт (в произвольной форме - можно на экран) с результатами по каждому сравнению. |
Ответ: Автоматизация операций с файлами
Психанул @ закодил всё сам
|
Ответ: Автоматизация операций с файлами
Когда передо мной встают подобные задачи, я создаю в нужной папке или вовсе на рабочем столе новый PHP файл, трачу три минуты, чтобы написать там код, и задача решена. Потом файл отправляется либо в небытие, либо в папку с другими подобными файлами, чтобы в будущем можно было скопипастить оттуда кусочек кода на другой подобный PHP файл применительно к другой задаче.
|
Часовой пояс GMT +4, время: 02:36. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot