Копировать структуру папок без копирования файлов в Windows 10
Проводник Windows полезен для ручного создания папок для ваших файлов, но в нем нет функции, позволяющей пользователям Windows 10 создавать копии структур папок и каталогов. Если вы работаете над сложными личными или профессиональными проектами, ваши папки, вероятно, содержат вложенные папки. Воссоздание этой структуры требует много терпения и энергии. К счастью, вы можете легко воссоздать структуру папок с помощью командной строки.
Командные строки действуют как псевдокод и обычно используются с командной строкой для выполнения различных задач. Команда «xcopy» реплицирует папки, и вы можете изменить ее с помощью переключателей, которые определяют, какие аспекты будут скопированы или исключены. Переключатель «/t» сигнализирует системе, что она должна реплицировать все папки без файлов. Поскольку эта функция не регистрирует пустые папки, в командной строке также будет указан переключатель «/e». Система будет сканировать структуры, содержащие пустые папки, и реплицировать их целиком. Чтобы выполнить команду:
Нажмите «Windows + R», чтобы открыть диалоговое окно «Выполнить».
Введите «cmd» и нажмите «ОК», чтобы запустить командную строку.
Введите «xcopy», «источник», «назначение» /t /e в окне командной строки.
Вместо «источник» введите путь к иерархии папок, которую вы хотите скопировать.
Вместо «назначения» введите путь, по которому вы хотите сохранить скопированную структуру папок.
Нажмите «Ввод» на клавиатуре.
Другой вариант — команда Robocopy. Вот как можно скопировать структуру папок с помощью строки Robocopy:
Нажмите «Windows + R», чтобы открыть диалоговое окно «Выполнить».
Введите «cmd» в новом окне.
Удерживайте «Ctrl + Shift + Enter», чтобы запустить командную строку от имени администратора.
Введите «robocopy», «source», «destination» /e/xf *» в окне командной строки.
Замените «источник» на путь исходной структуры папок.
Замените «назначение» на путь, по которому вы будете хранить скопированную структуру папок.
Коснитесь клавиши «Ввод».
Действие реплицирует структуру, сохраняя все вложенные папки и исключая исходные файлы.
Внешние команды
- Exit используется для выхода из консоли DOS или (с опцией /b) только текущего bat-файла или подпрограммы.
- Ipconfig – это классическая консольная команда, которая выводит информацию о сети. Она включает MAC- и IP-адреса, и маски подсети.
- Ping пингует IP-адрес, отправляя к нему пакеты данных, чтобы оценить его удаленность и время ожидания (отклика). Также используется для задания паузы. Например, команда ping 127.0.01 –n 6 приостанавливает выполнение кода на 5 с.
Библиотека команд bat-файлов огромна. К счастью, в Сети есть множество страниц, в которых все они перечислены, наряду с переменными пакетного скрипта.
Способ 2. Использование окна свойств для рекурсивного подсчета всех файлов и папок
Хотя предыдущий метод, безусловно, полезен во многих случаях, он не работает рекурсивно. Он считает файлы и папки на первом уровне дерева папок, но эти папки, скорее всего, содержат другие файлы и папки внутри. Что если вы хотите точно знать, сколько папок и файлов хранится в определенной папке и во всех ее подпапках? Простой способ найти эту информацию — использовать окно « Свойства» выбранной папки. Щелкните правой кнопкой мыши или нажмите и удерживайте значок папки. В контекстном меню нажмите или нажмите на Свойства .
Обратите внимание, что еще более быстрый способ открыть окно « Свойства» папки — выбрать ее и одновременно нажать клавиши Alt + Enter на клавиатуре. Когда откроется окно « Свойства» , Windows автоматически начнет подсчет файлов и папок внутри выбранной папки
Вы увидите эту информацию в поле « Содержит»
Когда откроется окно « Свойства» , Windows автоматически начнет подсчет файлов и папок внутри выбранной папки. Вы увидите эту информацию в поле « Содержит» .
Написание BAT файлов
В этой статье я приведу несколько примеров написания BAT-файлов. Рассмотрим команды для того, чтобы изменить системную дату, запустить и отключить службу windows, запустить программу, вывести сообщение для пользователя.
Чтобы создать исполнительный файл в операционной системе windows достаточно всего двух действий:
- Выбираем папку расположение будущего bat-файла
- Щелкаем правой кнопкой мыши и выбираем: создать > текстовый документ
- Задаем название файлу и меняем расширение .txt на .bat, например должно получиться «file.bat». Соглашаемся на изменение расширения, нажимаем «Да»
Всё! Исполнительный файл готов. Осталось только добавить в него команды. Для этого нажимаем по нему правой кнопкой мыши и выбираем «изменить». В открывшемся окне текстового редактора и вводятся команды.
Вывод текстовых сообщений
Для вывода текста на экран существует команда ECHO. После команды пишем текст для вывода. Например, в bat файле записываем строки:
Команду PAUSE даём для того, чтобы окно не закрывалось автоматически после выполнения ECHO, а ожидало нажатия любой клавиши для выхода.
Как видно из рисунка текст выводится, но есть проблемы с кодировкой. Для отображения русских символов добавим в самое начало команду Chcp <код_кодировки>. Приведу пример кодировок:
- 1251 – Windows (кириллица);
- 866 – DOC-кодировка;
- 65001 – UTF-8;
Изменим код нашего исполнительного файла на такой:
Команда @echo off служит для отключения вывода адреса и текста самой команды. Русский текст отображается.
Ввод данных пользователем
Часто для решения каких-либо задач требуется вручную задать значения переменных. Рассмотрим такой пример, исполнительный файл спрашивает имя пользователя, далее выводит текст «привет <имя>».
Командой SET мы создаем переменную input и присваиваем ей значение введенное пользователем. Для вывода значения переменной заключаем её имя в знак %.
Включения и выключение служб windows
Иногда встречаются ситуации, когда службы программ конфликтуют между собой. Например такая ситуация наблюдается с программами TecDoc и ETK BMW (это каталоги автомобильных запчастей, ошибка службы Transbase). Пока запущена служба одной программы — не запустится служба второй, а следовательно и сама программа. Ситуация решается несколькими строчками в исполнительном файле:
Команды net stop и net start выключают и включают службы windows. Команда start «» <путь> запускает программу. Таким образом если включена мешающая программе служба, то она выключится и запустится нужная, и только после этого произойдёт запуск программы. Создаем второй исполнительный файл, меняем службы местами и прописываем пусть к второй программе. Готово! У вас два bat файла, ими и нужно запускать программы. Единственный минус такого решения — это невозможность одновременного использования обоих программ.
Февраль 18th, 2016|Программирование|
Bat файл — что к чему, вводная
Для начала немного о том, что такое bat файл
, зачем он нужен и с чем его (или их) едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии :
Пакетный файл (т.е bat
файл, от англ. batch file
) — текстовый файл в MS-DOS, OS/2
или Windows
, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.
После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM
или CMD.EXE
) читает его строка за строкой и последовательно исполняет команды.
Пакетный файл — аналог shell script
в Unix
-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера.
Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п.
Пакетные файлы поддерживают операторы if
и goto
(а в системах семейства Windows NT
и расширенный оператор for
), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в DOS
имеют расширение.bat
; для других операционных систем они могут иметь другие расширения — например, .CMD
в Windows NT
и OS/2
, или .BTM
в 4DOS
или подобных оболочках.
С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.
Хотите знать и уметь, больше и сами?
Мы предлагаем Вам обучение по направлениям: компьютеры, программы, администрирование, сервера, сети, сайтостроение, SEO и другое. Узнайте подробности сейчас!
С помощью Directory Printer
Тем же, кто не хочет заморачиваться с командной строкой можем предложить специальную утилиту Directory Printer, как раз предназначенную для вывода содержимого каталога в текстовый файл TXT.
Помимо названий эта программа позволяет выводить различную дополнительную информацию, например, атрибуты, дату модификации, размер, расширение, версию и т.д. Так же имеется возможность фильтрации по разным параметрам.
Распространяется программка бесплатно, язык интерфейса имеет английский, поддерживает вывод данных непосредственно на принтер.
Скачать Directory Printer: http://www.karenware.com/powertools/ptdirprn.asp
Встроенные команды
1. @echo – это команда bat-файлов, которая позволит увидеть работу скрипта в командной строке. Она используется для просмотра хода выполнения рабочего кода. Если у пакетного файла возникают какие-либо проблемы, то данная команда позволит быстро локализировать проблемы. Добавление off дает возможность быстро завершить выполнение кода, избегая вывода ненужной информации на экран.
2. Title предоставляет те же возможности, что и тег в HTML, т. е. создает заголовок для пакетного скрипта в окне командной строки.
3. Call вызывает один bat-файл из другого или подпрограмму внутри одного сценария. Например, функция power вычисляет степень %2 числа %1:
if %counter% gtr 1 (
endlocal & set result=%prod%
4. Cls очищает командную строку. Используется для того, чтобы предыдущий вывод постороннего кода на помешал просмотру хода выполнения текущего скрипта.
5. Color задает цвет шрифта и фона. Например, команда color f9 задает белые буквы на синем фоне. Команда без параметра восстанавливает установки по умолчанию.
6. Echo служит для вывода информации, а также включения (echo on) или выключения (echo off) такого вывода. Например, команда echo. выводит новую строку без точки, а echo . – точку. Без параметров команда выводит на экран информацию о своем текущем статусе – echo on или echo off.
7. Rem обеспечивает ту же функциональность, что и тег > (сдвиг вправо). Логическим оператором отрицания является ! (восклицательный знак). Он изменяет 0 в 1 и ненулевое значение в 0. Оператором комбинирования служит , (запятая), которая позволяет производить большее число операций в одной команде set. Комбинированные операторы присваивания += и -= в выражениях a+=b и a-=и соответствуют выражениям a=a+b и a=a-b. Так же работают и *=, %=, /=, &=, |=, ^=, >>=, >, >=; ,
Литералы можно вводить в виде десятичных, шестнадцатеричных (с ведущими 0x) и восьмеричных чисел (с ведущим нулем). Например, set /a n1=0xffff присваивает n1 шестнадцатеричное значение.
Удаление временных файлов перед выключением компьютера
Я думаю, что все как минимум слышали о sms-вирусах или сталкивались с ними лично. Bat-файл поможет вам правильно завершить работу компьютера, удалив временные файлы, в папку с которыми обычно и загружается вирус.
При следующей загрузке устройства (на ранней стадии) вирус делает записи в реестре, нарушая нормальную работу системы. И когда загружается рабочий стол, ситуацию уже сложнее исправить.
Разумеется, далеко не все вирусы работают по этой схеме, но тем не менее очистка временных файлов и кэша системы перед её выключением значительно снижает такие риски.
Программа CCleaner по-умолчанию отсутствует в Windows. Её нужно установить отдельно. Скачать установщик можно на сайте разработчика.
Первой запускается программа CCleaner и удаляет все временные файлы на компьютере. Затем запускается программа выключения компьютера с задержкой в 15 секунд, чтобы избежать возможных конфликтов с работой CCleaner.
Необходимо создать BAT-файл и скопировать этот пример в него. Ярлык на bat-файл вывести на рабочий стол, назначить ему красивую иконку и выключать компьютер при помощи этого ярлыка-кнопки.
Сохранение списка файлов с помощью командной строки
Вначале вам необходимо будет перейти к нужной папке, или диску, если вы хотите получить список файлов, которые находятся на диске. После открытия папки или диска, удерживая на клавиатуре кнопку «Shift», кликните правой кнопкой мыши внутри этой папки. В открывшемся контекстном меню выберите пункт «Открыть окно команд».
После этого откроется окно консоли, в которой уже будет указан путь к нужной директории (в вашем случае, будет к той папке, которую вы откроете). В этом примере, это папка «Программы» на Рабочем столе моего компьютера. В этой папке находятся другие папки, в которых находятся ярлыки программ.
Далее нужно будет ввести одну из этих команд:
dir /b>filelist.txtdir /s>filelist.txt
После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».
Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:
- /b — обозначает, что будут сохранены только имена файлов.
- /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.
Затем на клавиатуре нажмите на кнопку «Enter».
После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.
Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.
Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.
Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.
На образце вы увидите правильное отображение текста.
После нажатия на кнопку «ОК», данный текст будет открыт в программе Word. Вы можете провести редактирование документа, а потом сохранить его на компьютере в нужном формате, в том числе в формате «TXT». Проблем с кодировкой после сохранения файла уже не будет.
Копировать структуру папок без копирования файлов в Linux
Системы Linux позволяют пользователям выполнять множество команд, но иногда сложно запомнить все командные строки. Самый быстрый способ скопировать структуру папок в Linux — использовать команду «rsync», инструмент для репликации файлов и каталогов. Поскольку утилиты «rsync» предустановлены в продуктах Linux, клонирование иерархий папок без файлов относительно просто. Для этого:
Нажмите «Ctrl + Alt + T», чтобы открыть приложение «Терминал».
Введите следующую команду «rsync» в окне терминала: $ rsync -av -f»+ */» -f»- *» «(источник)(назначение)»
Замените «источник» на путь, содержащий исходную структуру папок.
Замените «назначение» на путь, по которому будет создана скопированная структура.
Нажмите клавишу «Ввод».
Модифицированная командная строка указывает системе реплицировать папки и подпапки, но пропускать файлы.
Основные команды, синтаксис и примеры использования батников
Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.
Открываем пустой батник и вставляем в него такие команды:
start "" "C:/Program Files/Google/Chrome/Application/chrome.exe" timeout /t 05 start "" "C:/Program Files/Mozilla Firefox/firefox.exe" timeout /t 05 start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"
Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками
Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь
При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:
start /b "" "путь"
Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.
start /b "" "путь" pause
Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:
@echo off chcp 1251 echo "Вы действительно хотите выключить компьютер?" pause shutdown /s /t 0
Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.
Если вместо русского текста при выполнении команды вы увидите крякозябры, попробуйте преобразовать файл скрипта в ANSI.
Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:
del /A /F /Q "D:/data"
А можно и так:
forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"
В отличие от первой, вторая команда удаляет файлы рекурсивно, то есть в папке data будут удалены все файлы плюс те, которые лежат во вложенных каталогах.
А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:
robocopy C:/data D:/backup /e pause
Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.
Получение списка файлов в папке с помощью bat файла
Один из самых доступных и простых способов получения списка файлов в папке – использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:
chcp 1251 echo %date% %time% >filelist.txt dir /b /d >>filelist.txt
Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:
- Имя файла: filelist.bat
- Тип файла: Все файлы
После этого нажмите на кнопку «Сохранить».
Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.
Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.
Получаем список файлов в Total Commander
Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.
Вам также может быть интересно:
В меню «Выделение», сначала выбираете пункт «Выделить всё». После того, как все файлы были выделены, в этом же меню выбираете пункт «Копировать имена в буфер».
Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.
Вы можете в меню «Выделение» выбрать пункт «Сохранить выделение в файл…». В этом случае, вам нужно будет дать имя файлу, а затем сохранить его в формате «TXT».
Послесловие
Как я уже сказал и Вы сами наверное осознали — использование подобного bat
файл «а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.
При желании можно поставить запуск этого bat
-ника в определенные дни через планировщик Windows
(или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup
«ов.
Если есть какие-то вопросы или проблемы — спрашивайте. Как всегда помогу чем смогу;)
PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела «Автоматизация администрирования
«.. так что можете собой гордится:)
Как известно, операционные системы с графическими пользовательскими интерфейсами не всегда «хозяйничали» на компьютерах. Еще до их появления очень часто использовались DOS-подобные ОС, в которых для выполнения каких-либо действий необходимо было вводить специальные команды. И именно из них были позаимствованы принципы создания и выполнения так называемых пакетных файлов.
Несмотря на громкие заявления корпорации Microsoft о том, что поддержка MS-DOS была прекращена уже очень давно, если хорошенько вдуматься, нетрудно сообразить, что та же командная строка или консоль PowerShell работают как раз по тем же принципам. И для них иногда вписывать какие-то определенные команды, инициирующие выполнение тех или иных действий, совершенно необязательно. Можно запросто написать собственный код и сохранить его в специальном BAT-файле, после запуска которого действия будут выполнены автоматически. Но как создать BAT-файл в Windows 7 или ОС ниже или выше? Для этого есть несколько простых способов, о которых далее и пойдет речь. Но для начала необходимо выяснить, что это за объекты, и для чего они могут использоваться.
Имена всех файлов в папке в текстовый файл в ОС Windows
В ОС Windows нужно открыть «Командную строку»
(файл cmd.exe). И там выполнить команду:
dir /b /a-d >
filename.txt
Эта команда расшифровывается так:
-
dir — команда, которая показывает
содержимое текущего или указанного каталога. -
/b — опция команды, которая
показывает, что нужно выводить только имена (без доп. информации). -
/a-d — опция команды, которая показывает, что нужно выводить
только файлы, без папок. -
> filename.txt — перенаправление
вывода команды в текстовый файл вместо экрана.
Вывод такой команды, в текстовом файле будет выглядеть вот так:
desktop.ini
dvazhdy.rozhdennyj.avi
filename.txt
logo-128.png
logo.jpg
logo.png
ls.txt
Более сложный вариант команды:
dir D:\download /b /a-d >
d:\temp\filename.txt
В этом варианте явным образом указаны пути, папки и файла.
Если нужно выбрать файлы из вложенных папок, тогда в команду нужно
добавить опцию /s:
dir /b /a-d /s > filename.txt
Если нужно добавлять имена файлов к существующему содержимому файла (без
перезаписи файла), тогда условие перенаправления нужно удвоить:
>> filename.txt
то есть:
dir /b /a-d >> filename.txt
Получение списка файлов в папке с помощью bat файла
Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:
Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:
- Имя файла: filelist.bat
- Тип файла: Все файлы
После этого нажмите на кнопку «Сохранить».
Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.
Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.