Как получить список файлов в excel с помощью vba

Имя для новой папки

Если название не вводить, то папка по умолчанию будет называться «Новая папка». В принципе, в любой момент Вы ее можете переименовать, о чем речь пойдет ниже.

Отклоняясь от темы, замечу, что выражение «по умолчанию» означает, что создатели программного обеспечения думали-думали и приняли решение за пользователя (т.е. за нас с Вами), что в конкретном случае можно поступить так, как предлагается. В данном случае рекомендуется согласиться «по умолчанию» с названием «Новая папка».

Но такое название плохое, так как по прошествии некоторого времени сложно вспомнить, что хранится в папке с таким неказистым именем. Поэтому вместо выбора «по умолчанию» лучше ввести «собственное» имя папки.

Введя имя, надо нажать на клавишу Enter или щёлкнуть мышкой за пределами рамки для ввода имени. Если была допущена ошибка при вводе имени, ее легко исправить. Для этого надо щёлкнуть по ошибочному имени папки мышкой, т.е. выделить это имя, а затем нажать на клавишу F2 и можно редактировать имя папки.

Если надо создать папку внутри существующей папки («дерево папок»), кликаем по свободному месту в старой папке правой кнопкой мыши, затем по опции «Создать» и далее делаем все точно так, как описано выше.

Другие варианты, чтобы создать новую папку

II вариант:

Есть ещё один вариант для создания папки Windows. В строке меню окна папки в правом верхнем углу есть опция «Файл». Кликаем по ней, затем по «Создать» и, наконец, «Папку».

III вариант:

Открываем Проводник (Пуск – Программы – Стандартные – Проводник), заходим туда, где требуется создать папку. Затем в правом верхнем углу заходим в меню Файл – Создать – Папку.

Или можно щёлкнуть в свободном месте правой кнопкой мыши и в контекстном меню выбрать Создать – Папку.

Проводник создаст новую папку в том месте, где Вы дали команду на её создание, и назовет её Новая папка. Вы можете ввести другое имя, о чем было рассказано выше в первом варианте.

Вариант с Проводником удобен, если Вы решились навести порядок в своих файлах и папках, так как здесь имеется каталог всего, что у Вас есть на компьютере. Можно сделать сортировку по новым или старым папкам, удалить ненужное.

IV вариант:

С помощью этого варианта предполагается создание новой папки в тот момент, когда Вы сохраняете какой-либо файл. Это удобно, чтобы сразу свои файлы хранить «по полочкам», чтобы впоследствии их можно легко было найти.

Допустим, Вы создаете файл или редактируете уже имеющийся. Файл, который в результате получится, можно сразу сохранить в новой папке (как говорится, «не отходя от кассы»). Для этого в меню «Файл» (в правом верхнем углу) выбираем опцию «Сохранить как».

В открывшемся окне кликаем по кнопке «Создать папку», в результате чего появляется папка с именем «Новая папка». Сразу можно ввести другое имя для папки, после чего вводится имя файла. Эта процедура пошагово (1-ый шаг, 2-ой, 3-ий, 4-ый) показана ниже на примере сохранения файла в Блокноте:

1-ый шаг – Кликаем по кнопке “Создать папку”

2-ой шаг – Вводим имя папки, нажимаем на Enter. Новая папка создана.

3-ий шаг – Нажимаем на кнопку “Открыть”, которая находится правее поля “Имя файла”. Таким образом попадаем в новую папку.

В меню Файл кликаем “Сохранить как”, указываем папку и имя файла

4-ый шаг – В новой папке вводим в поле “Имя файла” новое или старое имя файла и нажимаем на “Сохранить”. Все – файл сохранен в новой папке.

Упражнения по компьютерной грамотности:

1) Создайте папку с именем «Учебная» на Рабочем столе, а затем с тем же именем в папке «Мой компьютер». Операционная система Windows разрешает создавать папки с одним и тем же именем в разных местах?

2) В Блокноте или редакторе Word сохраните файл в совершенно новой папке, используя опцию «Сохранить как» в меню «Файл».

P.S. Рекомендую также прочитать:

1. Новая папка 7

2. Как открыть два окна в Ворд одновременно

3. Панель задач Windows XP

4. Главное меню Windows XP

5. Настройка вида папки

Распечатать статью

Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик. Уже более 3.000 подписчиков

.

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам

Как архивировать папки и файлы в WinRaR

А теперь перейдем к практике. Сейчас мы научимся сжимать файлы и папки при помощи программы WinRaR. Если на Вашем компьютере установлена программа 7 Zip, то смело опускайтесь ниже — там информация для Вас. Если же у Вас нет ни того ни другого, то еще ниже 🙂

Для начала научимся архивировать файлы и папки. Делается это очень просто. Нажмите правой кнопкой мышки по файлу или папке с файлами. Появится вот такой список.

Как Вы уже догадались, нас интересуют пункты, которые начинаются со слов «Добавить в архив» (Add to).

Нам нужен второй пункт из этой серии. У меня он называется «Добавить в архив “Папка.rar”» (Add to “Папка.rar”). У Вас будет почти такой же пункт, только вместо «Папка.rar» будет написано название Вашего файла (папки) .rar.

Нажмите на этот пункт. Возможно, на некоторое время появится вот такое окошко. Дождитесь, пока оно пропадет.

А теперь посмотрите внимательно на файлы и папки. Должен появиться новый файл. Он будет выглядеть примерно так:

Вот это и есть тот файл или та папка, которую Вы заархивировали.

А теперь давайте посмотрим, насколько уменьшился размер. Нажмите правую кнопку мышки на файле или на папке, которую Вы сжимали. Из списка выберите пункт «Свойства».

Появится новое окошко. Запомните размер и закройте его.

Теперь нажмите правой кнопкой по новому файлу-архиву и выберите пункт «Свойства».

Скорее всего, его размер будет меньше, чем размер изначального файла (папки).

Но так бывает не всегда. Например, если Вы будете таким образом сжимать фотографии, видео или музыку, размер может остаться прежним или измениться совсем незначительно. Для сжатия фото, музыки и видео используются другие программы, не архиваторы.

А теперь научимся разархивировать, то есть доставать из архивов информацию.

Вообще-то, можно этого и не делать. Попробуйте просто открыть файл-архив. Внутри Вы увидите то, что было заархивировано. И оно совершенно спокойно открывается. Но все-таки это не очень удобно. Поэтому лучше все-таки вытаскивать информацию из архива.

Перед тем, как достать из файла-архива информацию, откройте его.

Откроется необычное окошко. Посмотрите в его середину – там показаны файлы или папки, которые прячутся в архиве. То есть, если мы его разархивируем, то эти файлы (папки) «вылезут» наружу.

Закройте окошко и нажмите правой кнопкой мышки по этому файлу. Нас интересуют два похожих пункта – «Извлечь в текущую папку» (или «Extract Here») и «Извлечь в какое-то название» (или «Extract to какое-то название»).

Если, когда Вы открывали архив, в середине окошка был один файл или одна папка, то нажимайте «Извлечь в текущую папку» (Extract Here). А если там было несколько файлов (папок), нажимайте «Извлечь в какое-то название» (Extract to какое-то название).

Вот и все. После того, как Вы нажмете на нужный пункт, файлы или папки извлекутся, и архив можно будет удалить.

А теперь давайте узнаем, какая у Вас версия программы WinRaR – та, которая со временем перестанет работать, или же та, которая будет работать постоянно.

Для этого нам нужно открыть любой файл-архив. Когда он откроется, в этом окошке нажмите на надпись «Справка» или «Help» (вверху) и из списка выберите пункт «О программе» (About…).

Появится небольшое окно. Если в нем написано «40-дневная пробная копия» (40 days trial copy), то это означает, что Ваша программа в ближайшем будущем перестанет работать. Имеет смысл скачать бесплатную программу для архивации (об этом читайте ниже).

А если в этом окошке написано «Владелец копии» или «Registered to», то программа будет работать – можно не беспокоиться, ничего не скачивать. И дальше читать тоже необязательно.

Операторы чтения и записи в файл

Оператор Input #

Оператор Input # считывает данные из открытого файла с последовательным доступом и присваивает эти данные переменным.

Оператор Input # используется только с файлами, открытыми в режиме Input или Binary. При прочтении стандартные строковые или числовые значения присваиваются переменным без изменения.

Синтаксис оператора Input #:

1 Input#Номер_файла,Переменные

Компоненты оператора Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменные – обязательный параметр, представляющий из себя список переменных, разделенных запятой, которым присваиваются значения, считанные из файла.

Особенности применения оператора Input #:

  • Элементы данных в файле должны быть указаны в том же порядке, что и переменные в списке Переменные, и соответствовать им по типу данных. Если переменная числовая, а данные текстовые, этой переменной будет присвоено нулевое значение.
  • Если при чтении данных достигнут конец файла, чтение прерывается и возникает ошибка. Для ее предупреждения в коде VBA Excel используется функция EOF.
  • Чтобы данные из файла могли быть правильно прочитаны и записаны в переменные с помощью оператора Input #, они должны быть записаны в файл с помощью оператора Write #. Он обеспечивает правильное разделение каждого из полей (элементов) данных.

Оператор Line Input #

Оператор Line Input # считывает одну строку из открытого файла с последовательным доступом и присваивает ее значение строковой переменной.

Оператор Line Input # считывает из файла по одному символу до тех пор, пока не встретится символ возврата каретки (Chr(13)) или последовательность символа возврата каретки и перевода строки (Chr (13) + Chr(10)).

Синтаксис оператора Line Input #:

1 Line Input#Номер_файла,Переменная

Компоненты оператора Line Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменная – обязательный параметр, представляющий из себя имя переменной, объявленной как String или Variant, которой присваивается строка, считанная из файла.

Оператор Write #

Оператор Write # записывает данные в файл с последовательным доступом.

Синтаксис оператора Write #:

1 Write#Номер_файла,Данные

Компоненты оператора Write #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.

Особенности применения оператора Write #:

  • Данные, записанные с помощью оператора Write #, считываются из файла с помощью оператора Input #.
  • Если опустить параметр Данные и добавить запятую после Номер_файла, в файл будет добавлена пустая строка.
  • Несколько выражений в списке Данные могут быть разделены точкой с запятой или запятой.
  • Числовые данные всегда записываются с точкой в качестве разделителя целой и дробной части.
  • Оператор Write # вставляет запятые между элементами и прямые парные кавычки вокруг строк при их записи в файл.
  • После записи в файл последнего символа из параметра Данные оператор Write # вставляет символы возврата каретки и перевода строки (Chr (13) + Chr(10)).

Как отобрать из папки картинки в формате jpg, имена которых перечислены в Экселевской таблице?

​ в которую и​​ = FSO.CreateTextFile(«output.txt», True,​ написано, что нужно​ As String Folders(N)​ разные и не​ Date fileDate =​ работает с именами​ i As Long,​——————————————————————————————————-​ a(i, 3) =​ Object​ процедуру повторно для​ iFileName​ As Long Set​ Все по теме.​: Ждите ответа, ждите​ два мелких косяка:​ отбираются файлы.​ False) ‘Путь к​ ставить двойные кавычки​ = Folder &​ имеют никакой последовательности.​ thisFile.ModifyDate pos =​ файлов, не отображамых​ j As Long,​А вот на​ fso.GetFile(p & f).DateLastModified​Dim SubFolder As​ каждой вложенной папки​i = i + 1​

​ FSO = CreateObject(«Scripting.FileSystemObject»)​​Alex_ST​ ответа, ждите ответа,​1. Значение чек-бокса​Объясните, пожалуйста, поподробнее,я​ корневому каталогу SFold​ Chr(34), если в​

​ «\» & f1.Name​​Можно ли с​ -1 For i​ в кодовой таблице​ k As Long,​ 2016 не сработало.​

​ ‘Дата последней модификации​​ Object​ If IncludeSubfolders Then​iFileName$ = Dir​ Set SourceFolder =​​: Подправил файл (там,​ ждите ответа, ждите​ SheetFind.CheckBox_ShortPath при открытии​ не поняла что​ = «C:\Program Files\»​ имени папки есть​ & «\» Next​ помощью excel получить​ = 1 To​

​ по умолчанию (Windows-1251).​​ p As String,​Error 53/ File​ f = Dir​Dim FileItem As​ For Each SubFolder​

​Loop​​ FSO.getfolder(SourceFolderName) r =​ оказывается, поломалась расстановка​ ответа…​ файла сохраняется таким,​ делать,вот у меня​ Set Folder =​​ пробелы. Но у​ f1 End SubСписок​ список названий файлов,​ LastFileCount If outData(i,​Андрей VG​

​ f, a(), fso,​​ not found.​​ Loop .Resize(UBound(a, 1),​

​ Object​​ In SourceFolder.SubFolders ListFilesInFolder​End Sub​ Range(«A65536»).End(xlUp).Row + 1​ гиперссылок)​А вообще, правильно​ каким оно было​ есть эксэлевский файл​ FSO.GetFolder(SFold) ‘Цикл по​ меня все работает​​ с полными путями​ которые лежат в​ 1) < fileDate​: Коллега, я не​ files Application.ScreenUpdating =​Подсветило жёлтым, начиная​ UBound(a, 2)).Value =​Dim r As​

​ SubFolder.Path, True Next​​всего не читал​

​ ‘находим первую пустую​​Алексей​ написал Сергей: личные​ при сохранении перед​ который вы прислали​ всем подкаталогам for​ и без них.​ в массиве Folders()​ папке?​ Then pos =​

​ рассматриваю обсуждение как​​ False: .Clear Set​ с двоеточия и​ a ‘Выгружаем на​ Long​ SubFolder End If​ — только название​ строку ‘выводим данные​​: Подскажите , а​ вопросы — в​ закрытием. А вот​ и есть папка​

​ Each SubFolder In​​ И наоборот ничего​Апострофф​nilem​ i Exit For​ соревнование. Скорее как​ fso = CreateObject(«Scripting.FileSystemObject»)​ до конца строки:​​ активный лист .Sort​Set FSO =​ Columns(«A:E»).AutoFit Set FileItem​ темы…​​ по файлу For​ как сделать так​ личной почте. А​ переменная ShortPath, которую​ с сотней тыщ​

​ Folder.SubFolders sFlds =​​ не выдает/работает неверно,​: Вариант:​​: Файлы в папке.​​ End If Next​ способ коллективно найти​ p = «X:\BACKUP\PPR2017\»​ i = i​​ , xlDescending, Header:=xlNo​ CreateObject(«Scripting.FileSystemObject»)​ = Nothing Set​gling​ Each FileItem In​ что бы еще​​ если вопрос по​ я пытаюсь по​ картинок,что делать дальше?​​ SFold & SubFolder.Name​ если их указать.​​Sub Dirs() Dim​ Пример (2007)​

​ If pos >​​ оптимальное решение при​ ‘Папка с файлами​ +1 : Set​ ‘Сортируем по дате​Set SourceFolder =​ SourceFolder = Nothing​: Есть вариант, макросы​ SourceFolder.Files Cells(r, 1).Formula​ можно было особым​

planetaexcel.ru>

Многотомные архивы

Для особо больших файлов и папок, которые «не пролезают» в размер электронного письма и в других подобных случаях можно рекомендовать делать многотомные архивы.  О такой возможности написано здесь.

Допустим, в электронную почту можно поместить только файлы, размером до 5 Мб. А передаваемые файлы и папки занимают места раза в 3-4 больше. Тогда возможен вариант создания многотомного архива, задавая размер одного файла архива 5Мб. Программа архивации WinRAR сформирует в таком случае 3-4 файла с одним и те же именем, но с разными расширениями. Затем в 3-4 письмах можно отправить по очереди все 3-4 созданных файла.

Получатель же многотомного архива должен поместить все 3-4 принятые по почте файлы в одну папку, и затем запустить действие по извлечению папок и файлов из первого принятого файла архива. Далее программа автоматически извлечет все архивные данные последовательно из всех переданных по электронной почте архивных файлов.

Пытливый читатель может спросить: «Зачем применять многотомную архивацию, если можно большие файлы передавать через облака, через файлообменники?»

Конечно, можно. Но в условиях задачи, в условиях получателя может стоять требование прислать данные именно по почте, допустим при проведении того же тендера. Попробуйте в таком случае отправить большие по размерам картинки, плакаты, чертежи и прочие «массивные» документы, не прибегая к архивации данных! А на тендерах может много чего потребоваться, чтобы доказать свою исключительность и получить желаемый заказ.

Также отправка многотомного архива, да еще и с паролем, позволяет обеспечить конфиденциальность передаваемой информации. Да мало ли еще для чего можно использовать многотомные архивы без пароля или с паролем!

Получить список файлов в папке

Получить список файлов в папке

beat_swamp » 06.12.2005 (Вт) 11:30

alibek » 06.12.2005 (Вт) 11:32

Matew » 06.12.2005 (Вт) 11:41

Dim FileName As String ‘ Переменная для имени. Dim DirName As String ‘ Папка Dim dirNames() As String ‘ Буфер папок Dim nDir As Integer ‘ количество директорий Dim i As Integer ‘ счетчик цикла. Dim hSearch As Long ‘ дескриптор поиска Dim WFD As WIN32_FIND_DATA Dim Cont As Integer If Right(Path, 1) «» Then Path = Path & «» ‘ Поиск подпапок. nDir = 0 ReDim dirNames(nDir) Cont = True ‘ Пройти по всем папкам и ‘ просуммировать размеры файлов. hSearch = FindFirstFile(Path & SearchStr, WFD) Cont = True ReDim sFound(0) As String If hSearch INVALID_HANDLE_VALUE Then While Cont DoEvents FileName = StripNulls(WFD.cFileName) If (FileName «.») And (FileName «..») Then FindFilesAPI2 = FindFilesAPI2 + (WFD.nFileSizeHigh _ * MAXDWORD) + WFD.nFileSizeLow FileCount = FileCount + 1 If Len(FileName) 0 Then If Right(FileName, 3) = «.md» Or Right(FileName, 3) = «.MD» Then If Right$(Path, 9) «NEW_STRU» Then ReDim Preserve _ MasBaz(UBound(MasBaz) _ + 1) MasBaz(UBound(MasBaz) — 1) = Path ‘& FileName‘ Err.Clear DirCount = DirCount + 1 End If End If End If End If ‘ Получить дескриптор следующего файла Cont = FindNextFile(hSearch, WFD) Wend End If Cont = FindClose(hSearch) hSearch = FindFirstFile(Path & «*», WFD) If hSearch INVALID_HANDLE_VALUE Then Do While Cont DoEvents DirName = StripNulls(WFD.cFileName) ‘ Пропустить текущую и родительскую папку. If (DirName «.») And (DirName «..») Then‘ If Len(DirName) 0 Then‘ If Right(DirName, 3) = «.md» Or Right(DirName, 3) = «.MD» Then‘ If Right$(Path, 9) «NEW_STRU» Then‘ ReDim Preserve _‘ sFound(UBound(sFound) _‘ + 1)‘ If Len(oldpath) 0 Then‘ sFound(UBound(sFound) — _‘ 1) = Path‘ Else‘ sFound(UBound(sFound) — _‘ 1) = Path‘ End If‘ End If‘ End If‘ End If ‘ Проверка на атрибуты. If GetFileAttributes(Path & DirName) And _ FILE_ATTRIBUTE_DIRECTORY Then

Form1.Caption = Path & DirName

FindFilesAPI2 Path & DirName, SearchStr, _ FileCount, DirCount, sFound(), Path End If End If ‘Перейти в следующую подпапку. Cont = FindNextFile(hSearch, WFD) Loop Cont = FindClose(hSearch) End IfEnd Function‘Пример использования:‘FindFilesAPI2 «C:» ,»*.*», 0, 0, myArray()

beat_swamp » 06.12.2005 (Вт) 11:42

RayShade » 06.12.2005 (Вт) 13:35

Код: Выделить всё for each fName in createobject(«scripting.filesystemobject»).getfolder(«c:123»).filesdebug.pring fName.namenext fname

keks-n » 06.12.2005 (Вт) 14:14

beat_swamp » 06.12.2005 (Вт) 14:54

BV » 06.12.2005 (Вт) 16:09

keks-n » 06.12.2005 (Вт) 16:18

beat_swamp » 06.12.2005 (Вт) 16:24

keks-n » 06.12.2005 (Вт) 16:31

keks-n » 06.12.2005 (Вт) 16:34

Пример из API-Guide:

‘Create a form with a command button (command1), a list box (list1) ‘and four text boxes (text1, text2, text3 and text4). ‘Type in the first textbox a startingpath like c: ‘and in the second textbox you put a pattern like *.* or *.txt

Private Declare Function FindFirstFile Lib «kernel32» Alias «FindFirstFileA» (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function FindNextFile Lib «kernel32» Alias «FindNextFileA» (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function GetFileAttributes Lib «kernel32» Alias «GetFileAttributesA» (ByVal lpFileName As String) As Long Private Declare Function FindClose Lib «kernel32» (ByVal hFindFile As Long) As Long

Const MAX_PATH = 260 Const MAXDWORD = &HFFFF Const INVALID_HANDLE_VALUE = -1 Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type

Private Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Function StripNulls(OriginalStr As String) As String If (InStr(OriginalStr, Chr(0)) > 0) Then OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) — 1) End If StripNulls = OriginalStr End Function

Используем Robocopy . Примеры.

Robocopy — это отличнейшая вещь, очень гибкий инструмент для копирования и даже бэкапа.  И самое интересное то,  что она поддерживает длинные пути файлов т.е. более 256 симоволов!!! Wiki: Это утилита командной строки для репликации (не просто копирования) каталогов (папок). Она была доступна как часть Windows Resource Kit и представлена как стандартный компонент Windows Vista, Windows 7 и Windows Server 2008. Поставляется компанией Microsoft «как есть» без гарантий и техподдержки.

Robocopy разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.

Все это необхожимо если вам нужно перенести целый каталог файлов с сервера со всеми настройками прав доступа в том числе и атрибутов времени создание файлов  или скопировать файлы исключив какие то файлы (по разным атрибутам или расширению) или папки. Также robocopy удобно использовать  в качестве программы для бэкапа файлов с компьютеров пользователей на сервер ( дальше на сервере работает добавочная архивация) — самое оптимальное решение.

Параметры копирования из robocopy /help

Примеры использования

Все это выполняется в командной строке (Пуск-Выполнить-CMD) или  вы можете создать  bat скрипт.

1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /maxage:5 /minage:1

2. Переместить все файлы:
robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /move /e

3. Скопировать файлы за исключением скрытых (/xa:h):

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /xa:h

или за исключением read-only (/ia:rs):

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /ia:rs

При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /A+:r

4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» *.doc *.ppt /s

5. Скопировать все файлы размером от 1000 до 60000 байт:

robocopy «E:\Documents» «\\NAS\BACKUP\Documents» /e /max:60000 /min:1000

6. Исключить из копирования папку AppData (/XD AppData):

Robocopy «C:\Users\Administrator» «\\NAS\BACKUP\Administrator» /MIR /XA:SH /XD AppData /XJD

7. Создать 32 потока (/MT:32) копирования файлов:

Robocopy «C:\Users\Administrator» \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32

8. Скопировать файлы из одной папки в другую со стандартными атрибутами  исключив файл по расширению (допустим *.doc)

Robocopy » Robocopy «C:\Users\Administrator» «\\server\userbackup»  /СOPY:DAT /XF *.doc

Пример использования для бэкапа

1)

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5  /MT:64

В данном примере:
Мы копируем папку «исходная папка», находящуюся на локальном диске D:
Мы копируем эту папку на компьютер \\192.168.0.1 в папку «целевая папка»
/E : Мы копируем все подпапки и файлы
/Z : Включаем поддержку докачки (на случай обрыва связи)
/COPY:TDASO : Копируем все атрибуты и ACL прав доступа NTFS (но не копируем атрибуты аудита)
/DCOPY:T : Копируем время создания папок
/M : Копируем только файлы с установленным атрибутом «A — Архивный» и сбрасываем этот атрибут, что позволяет нам копировать только измененные файлы.
/R : Количество повторных попыток копирования файла в случае, если копирование не удалось. Причем «не удалось» срабатывает и в том случае, если доступ к файлу закрыт. По-умолчанию = 1 миллионы, т.е. бесконечно, потому копирование благополучно встанет на первом же файле, к которому не будет доступа.
/W : Задержка в секундах между попытками копирования. По-умолчанию = 30 секундам.

/MT — кол-во потоков, увеличив которые можно ускорить копирование. Будет быстрее чем обычное копирование файла точно.

Заметка. Очень рекомендую задавать вручную параметры /R и /W, иначе при автоматической синхронизации она попросту зависнет, встретив на своем пути ошибку доступа.

2) Похожий пример , но обратите внимание  — каждый раз бэкап копируется в папку с названием даты и времени.  Очень удобно для создание добавочного бэкапа.robocopy D:\исходная_папка \\192.168.0.1\целевая_папка\

Или так — %date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%   Результат — 2016-03-13_23-30

Много интересного вы также сможете узнать набрав команду  set /?

Формат даты в командной строке:

Как получить список имен файлов, содержащихся в папке, а затем отобразить этот список на листе Excel

В этой статье будет рассказано, как получить список имен файлов, содержащихся в каталоге, а затем отобразить этот список на листе. Данный способ связан с использованием макрофункции Excel 4 XLM в именованной формуле. Такой метод удобен, поскольку позволяет относительно легко выстроить на листе список имен файлов — обычно для этого требуются сложные макросы VBA.

Откройте новую книгу, а затем выполните следующие действия для создания именованной формулы.

  1. Выполните команду Формулы ► Присвоить имя, чтобы открыть диалоговое окно Создание имени.
  2. Впишите в поле Имя название Список.
  3. Введите следующую формулу в поле Диапазон (рис. 8.1): =ФАЙЛЫ(Лист1!$A$1) .
  4. Нажмите ОК, чтобы закрыть окно Создание имени.

Рис. 8.1. Работа с диалоговым окном для создания именованной формулы

Обратите внимание: функция ФАЙЛЫ не относится к стандартным функциям рабочего листа. Это макрофункция, написанная в сравнительно старом XLM-стиле и предназначенная для использования на специальном листе макросов

Она принимает один аргумент (путь к каталогу и описание файла) и возвращает массив имен файлов, содержащихся в данном каталоге и удовлетворяющих описанию файла. Обычные формулы рабочего листа не могут использовать подобные XLM-функции, а именованные формулы — могут.

Определив именованную формулу, введите в ячейку А1 путь к каталогу и описание файла. Например: C:Excelexpert.ru* *. Далее формула отображает первый найденный файл: =ИНДЕКС(Список;1) . Если изменить второй аргумент на 2, то будет отображен второй найденный файл и т. д. На рис. 8.2 приведен пример. Путь и описание файла указаны в ячейке А1. В ячейке А2 содержится следующая формула, скопированная далее по столбцу: =ИНДЕКС(Список;СТР0КА()-1) . Функция СТРОКА, используемая здесь, генерирует ряд последовательных натуральных чисел: 1,2,3 и т. д. Эти числа используются в качестве второго аргумента функции ИНДЕКС.

Рис. 8.2. Использование XLM-макроса в именованной формуле позволяет создать на листе список имен файлов

Обратите внимание: в ячейке А17 (и ниже) происходит ошибка. Дело в том, что в каталоге содержится всего 19 файлов и формула пытается отобразить имена несуществующих

Если изменить каталог или описание файла в ячейке А1, то формулы обновляются и выводят имена новых файлов.

Если вы пользуетесь такими приемами, то книгу нужно сохранить как файл с поддержкой макросов (в формате *.xlsm или *.xls).

Комментарии

Игорь, подскажите, а можно ли в файл FilenamesCollectionEx.xls добавить маску имени подпапки, в которой производить поиск? Ситуация: файл с одинаковм именем может лежать в подпапках с разными именами. Я точно знаю, что нужная мне версия должна лежать в определенной подпапке. И проверять таким образом только их?

Так вроде и то и другое выводится Код открыт ведь, — поменяйте как вам надо, если лишний столбец мешает.

Возможно я слепой или плохо читаю, но я не увидел что-то подобное в коментах. Поэтому мой вопрос следующий: можно как-то сделать так, чтобы выводило только название файла а не весь путь?

Отбой, разобрался. Виноват оказался не этот макрос, а тот, который его результаты использовал. Мораль — люди, не юзайте Dir, если вам нужно что-то сделать с папкой, к которой он обращается.

В моём макросе нет MoveFolder – так что мой макрос точно не виноват в вашей проблеме. Проблема – либо в неверном использовании MoveFolder (не то или не туда перемещаете), либо нет прав доступа на перемещение в заданное место.

Игорь, всё это прекрасно. Непонятно только, что нужно сделать с Вашим макросом, чтобы после его вызова с папкой можно было бы ещё и что-нибудь сделать, например, переместить. Сейчас после вызова FSO.MoveFolder вылетает с ошибкой Access denied. Проверено, виноват именно Ваш макрос — если закомментировать ТОЛЬКО его вызов, FSO.MoveFolder отрабатывает нормально.

Спасибо, ОГРОМНОЕ. Выручайте ребята! макрос в целом отличный, но для моих целе нужно немного переделать. Нужно чтоб все файлы находящиеся в каждой папке были в одной ячейке через разделитель ( | ) Например: C:images

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий