Команда export в windows

Обновлено: 03.07.2024

Классическая оболочка Cmd.exe в операционных системах Windows предоставляет очень простые средства для обработки текстов. Например, команда For /f позволяет читать строки текста из файла и обрабатывать их как одну строку, а оператор > дает возможность писать выходные данные команды в текстовый файл.

Однако простой построчный анализ текста дает сбой в том случае, если вам нужно обработать структурированные данные. Например, файлы в формате CSV являются чрезвычайно распространенным форматом обмена данными. Я не могу даже сосчитать, сколько раз видел в онлайн-форумах вопрос: «как мне прочитать вводимые данные из файла формата CSV, используя пакетный файл (то есть набор команд оболочки Cmd.exe)»? Возможно, вам пришлось делать весь анализ вручную, а это крайне сложно. Например, если строка вводимых данных содержит специальные символы, такие как , вы не сможете выполнить анализ. Анализ файлов XML с помощью Cmd.exe даже более сложен. Если не сказать невозможен.

Windows PowerShell справляется с упомянутыми выше трудностями, предоставляя строку команд для импорта и экспорта структурированных данных. Все эти команды содержат в названии либо слово CSV, либо слово XML, поэтому вы можете получить их список, введя следующую команду в строке PowerShell:

Когда вы запускаете эту команду, вы видите список всех команд в сессии PowerShell, которые содержат в названии либо слова CSV и XML, либо какие-то дополнительные имена. Я расскажу о командах, которые содержат глаголы Export и Import.

Импорт файлов CSV

Как уже говорилось выше, CSV – это весьма распространенный формат для обмена данными. файл CSV является открытым текстовым файлом, который представляет собой таблицу данных. Каждая строка файла — это одна запись (строка) данных. Первая строка файла обычно (хотя и не всегда) определяет имена полей (столбцов). Элементы данных внутри каждой строки разделены символом разделителя. В качестве разделителя часто используется запятая (особенно когда дело касается текстовых данных), поэтому элементы данных в файле CSV обычно заключены в двойные кавычки («) или в какие-либо другие символы. В таблице приведен пример таблицы данных.

На экране 1 показано, как эти данные будут представлены в файле CSV.

Import-Csv читает файл CSV и выводит список пользовательских объектов PowerShell: один для каждой строки вводимых данных. PowerShell воспринимает первую строку файла CSV как свойства объекта, а последующие строки файла являются выводимыми объектами. Например, если вы запускаете команду Import-Csv Sample.csv, то PowerShell выведет три объекта с двумя свойствами для каждого: DisplayName и Mail, как показано на экране 2.

Если файл CSV, который вы хотите импортировать, не имеет строки заголовка, вы можете использовать параметр –Header для наименования свойств объекта. Таким образом, если бы в Sample1.csv отсутствовала первая строка (заголовок), вы бы использовали команду, например:

Import-Csv использует символ запятой, так как это разделитель по умолчанию, но вы можете применить параметр –Delimiter для определения иного символа для разделителя. Например, если бы Sample.csv использовал символ «табуляции» в качестве разделителя, вы бы вводили такую команду:

Поскольку Import-Csv выводит объекты PowerShell, вы можете задействовать другие команды PowerShell для обработки объектов. Например, предположим, что вы хотите рассортировать выводимые данные по критерию DisplayName, но вам нужно только свойство Mail для каждого объекта. Чтобы это сделать, вы используете команды Sort-Object и Select-Object:

Также вы можете передать эти объекты команде ForEach-Object для обработки:

Эта команда использует символ –f для вывода форматированной строки для каждого объекта и производит вывод данных, показанный на экране 3.

Экспорт файлов CSV

Заметьте, что Export-Csv может выводить данные любых объектов PowerShell, а не только объектов, созданных при помощи Import-Csv. Например, взгляните на такую команду:

Эта команда создает файл CSV, содержащий в текущей папке файлы, отсортированные по критерию размера. Эта команда использует Select-Object для выбора полного файлового имени каждого файла, времени последнего изменения и размера файла (длины). Таким образом, эти три свойства будут являться столбцами в файле CSV.

Импорт файлов XML

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

Данные в документе XML организованы в иерархическом порядке. В Sample.xml (листинг 1) у вас есть корневой элемент () и три дочерних элемента (). Элементы располагаются в парах и содержат другие элементы. Открывающий элемент использует угловые скобки вокруг своего имени, а закрывающий элемент использует косую черту перед именем элемента. Когда вы работаете с данными XML в PowerShell, вы должны иметь единственный корневой элемент. Другие элементы содержатся внутри корневого элемента.

В PowerShell есть команда Import-Clixml, но Import-Clixml не может импортировать Sample.xml, потому что Sample.xml не полностью соответствует формату, который требует cmdlet. Вместо него вы можете использовать Get-Content cmdlet и дополнительный тип обеспечения [Xml]: $Data = [Xml] (Get-Content Sample.xml).

После ввода команды переменная $Data содержит объект XmlDocument. Объект XmlDocument включает два свойства: xml (элемент в верхней части файла) и базу данных (корневой элемент). Вы можете вывести данные из файла XML так:

Эта команда производит точно такой же вывод данных, как показано на экране 2: выводит данные трех объектов с двумя свойствами для каждого (DisplayName и Mail).

Если данные файла XML, который вы хотите импортировать, были сохранены Export-Clixml, вам не нужен дополнительный акселератор типа [Xml] и команда Get-Content. Вместо них вы можете использовать Import-Clixml, о чем я расскажу в следующем разделе.

Экспорт Файлов XML

Вы можете экспортировать объект XmlDocument в файл, используя Export-Clixml. Как и Export-Csv, команда Export-Clixml требует имя файла. Рассмотрим такие команды:

Первая команда импортирует Sample.xml (листинг 1) в качестве объекта XmlDocument. Вторая команда экспортирует объект XmlDocument в Data.xml.

Import-Clixml противоположна Export-Clixml. Import-Clixml возвращает файл XML, который был экспортирован Export-Clixml в качестве объекта XmlDocument. Например, в следующей команде Import-Clixml возвращает Data.xml:

После запуска этой команды переменная $Data2 содержит копию того же объекта XmlDocument, который хранится в $Data.

Помните, что вы можете применять команду Import-Clixml для импорта только файла XML, созданного Export-Clixml. Это связано с тем, что файл XML должен содержать специфический набор элементов, чтобы Import-Clixml могла импортировать его. Если файл XML не в нужном формате, вам необходимо использовать дополнительный акселератор типа [Xml] и Get-Content, о чем говорилось в предыдущем разделе.

Управляйте файлами CVS и XML

Текстовые файлы CSV и XML представляют собой популярные форматы для обмена данными. Создатели PowerShell предоставили нам несколько весьма мощных и простых в использовании команд, которые помогают импортировать и экспортировать файлы в оба формата. Выполняемый вручную анализ файлов CSV и XML остался в прошлом.

К тому же это позволяет автоматизировать многие рутинные задачи и встраивать команды в скрипты.

Основной синтаксис¶

В общем виде синтаксис команды REG выглядит следующим образом:

Всего существует одиннадцать процедур, которые способна выполнять директива REG : QUERY , ADD , DELETE , COPY , SAVE , LOAD , UNLOAD , RESTORE , COMPARE , EXPORT , IMPORT . Каждая из этих процедур имеет, как правило, собственный набор параметров.

Более подробные сведения об использовании утилиты REG вы можете получить, набрав в командной строке директиву REG /? , чтобы получить информацию о какой-либо из перечисленных процедур, воспользуйтесь командой REG <процедура> /? .

Сокращения¶

Для удобства ввода применяются сокращения названий веток реестра. Все сокращения представлены в таблице ниже:

Сокращения названий веток реестра ¶
Ветка Сокращение
HKEY_CLASSES_ROOT HKCR
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC

Вывод содержимого ветвей (QUERY)¶

Команда REG QUERY отправляет в системный реестр Windows запрос о содержимом ветвей, ключей, подразделов или параметров, и выводит на экран результат обработки этих запросов. В общем виде синтаксис данной команды записывается следующим образом:

В составе директивы могут использоваться следующие параметры:

В качестве примера получим содержимое ветки в которой хранятся закрытые ключи квалифицированных электронных подписей:

Лучше вводить путь в кавычках.

Будет выведен примерно такой результат:

Как видно из вывода, в реестре компьютера находится всего один контейнер 2015ZAO_ .

Экспорт и импорт веток реестра (EXPORT и IMPORT)¶

Для экспорта используется команда EXPORT . Синтаксис команды:

Экспортируем контейнеры закрытых ключей на рабочий стол:

Вся ветка с контейнерами успешно экспортирована на рабочий стол и сохранена в файле keys.reg . Теперь импортируем ее обратно.

Команда доступна только для выполнения на локальном компьютере.

Для импорта используется команда IMPORT . Синтаксис команды:

Напомню, что для экспорта ветки на другом компьютере, необходимо будет изменить в файле keys.reg путь к ветке реестра с учетом разрядности операционной системы и SID текущего пользователя. Подробнее об импорте и экспорте закрытых ключей смотрите в Руководстве по работе с реестром ОС Windows в разделе Где хранятся ключи(закрытый ключ сертификата) в реестре? [1739].

Создание резервной копии реестра (SAVE и RESTORE)¶

Для резервного копирования и восстановления реестра используются следующие команды (типы операций) утилиты REG SAVE и REG RESTORE :

В данному разделе перечислены основные команды утилиты REG для получения более подробной информации обратитесь к ресурсам, перечисленным в разделе Дополнительные ссылки

date

03.09.2021

directory

PowerShell, Windows 10, Windows Server 2019

comments

комментариев 7

После переустановки или чистой установки Windows пользователь сталкивается с необходимостью установки актуальных версий драйверов для устройств компьютера. Сразу после переустановки системы пользователю приходится вручную искать и скачивать необходимые драйвера. Однако есть более простой способ переустановки драйверов в Windows. Перед переустановкой Windows вы можете создать резервную копию всех установленных драйверов. Затем вы можете установить драйвера из резервной копии уже на чистой системе.

В этой статье мы покажем несколько способы создания резервной копии (бэкапа/экспорта) всех драйверов Windows и способы их восстановления с помощью встроенных инструментов ( DISM , pnputil.exe или PowerShell командой Export-WindowsDriver ).

PowerShell командлет Export-WindowsDriver

В Windows 10 и Windows Server 2019/2016 есть специальный Powershell командлет Export-WindowsDriver, который позволяет экспортировать все установленные в системе сторонние драйвера (имеются в виду не родные драйвера Microsoft) напрямую из хранилища драйверов (Driver Store). Данный командлет позволят существенно облегчить и ускорить процесс переустановки Windows, т.к. раньше для создания резервной копии драйверов, установленных в системе, приходилось использовать стороннее ПО, например, DoubleDriver, DriverMax и пр.

Чтобы извлечь из текущего (онлайн) образа Windows 10 все установленные драйвера сторонних производителей, откройте консоль PowerShell с правами администратора и выполните команду:

Export-WindowsDriver –Online -Destination c:\drivers

Примечание. C:\drivers каталог, в который нужно экспортировать файлы драйверов. Создайте его предварительно.

Если нужно извлечь драйвера из офлайн образа Windows, смонтированного, например, в каталог c:\win_image, команда должна выглядеть так.

Export-WindowsDriver -Path c:\win_image -Destination c:\drivers

После запуска командлета на экране появится информация о всех экспортируемых драйверах, которые не являются частью ОС. В результате выполнения команды PowerShell в целевом каталоге окажется резервная копия всех драйверов Windows из каталога C:\Windows\System32\DriverStore\FileRepository\ . Каждый драйвер и все связанные с ним файлы сохраняется в собственный каталог, который называется по имени inf-файла драйвера.

Export-WindowsDriver powershell командлет для создания резервной копии драйверов в Windows со всеми inf файлами

В каждом каталоге есть все файлы, необходимый для установки драйвера в системе (не только inf файлы, но и все связанные sys, dll, exe и другие типы файлов). Командлет Export-WindowsDriver строит список файлов, которые необходимы для установки драйвера в соответствии со списком файлов, указанных в секции CopyFiles inf-файла драйвера.

inf файл драйвера

Чтобы отобразить список всех экспортируемых драйверов в удобном виде с указанием класса, производителя и версии драйвера, выполните экспорт драйверов двумя командами:

$BackupDrv = Export-WindowsDriver -Online -Destination c:\drivers

После чего выведите результаты выполнения команды в табличной форме:

$BackupDrv | Select-Object ClassName, ProviderName, Date, Version | Sort-Object ClassName

Перед вами появится таблица, содержащая класс драйвера, производитель, версию и дату.

таблица со списком сторонних драйверов, установленных в Windows

Вы можете выгрузить информацию об экспортированных драйверах в CSV файл:

$BackupDrv| Select-Object ClassName, ProviderName, Date, Version |Export-Csv c:\ps\drivers_list.txt

Можно вывести список драйверов определенного класса устройств с помощью атрибута класса ClassName. Например, чтобы вывести только драйвера принтеров, выполните команду:

Чтобы вывести список драйверов определенного производителя, воспользуйтесь командой:

выбор драйверов по различным классам

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

Export-WindowsDriver -Destination "\\msk-fs01\drivers\desktop\$((Get-WmiObject -Class win32_computersystem).Model)" -Online

сохранить в сетевой каталог все драйвера для каждой модели компьютера

Как вы видите, создался каталог с названием модели компьютера и все драйвера сохранены в него.

Резервное копирование драйверов в Windows с помощью DISM

Для создания резервной копии драйверов и их импорта в образ Windows также можно использовать утилиту DISM. Чтобы экспортировать драйвера в каталог C:\Drivers, откройте командную строку с правами администратора и выполните команду:

dism /online /export-driver /destination:C:\Drivers

Экспорт 1 из 27 — oem0.inf: Пакет драйверов успешно экспортирован.

бэкап драйверов с помощью dism /online /export-driver

В нашем примере утилита DISM успешно экспортировала в указанный каталог 27 драйверов.

Экспорт установленных драйверов с помощью утилиты PNPUtil

В состав всех версий Windows входит встроенная утилита PNPUtil.exe , которая обычно используется для добавления или удаления драйверов в Windows (ранее мы показывали как удалить старые версии драйверов из хранилища драйверов Windows для экономии места на диске). Утилиту PNPUtil также можно использовать для экспорта драйверов из хранилища Windows.

Откройте командную строку с повышенными правами и выполните команду:

pnputil.exe /export-driver * c:\drivers

pnputil.exe export-driver (сохранить все драйвера в каталог drivers)

Драйвера из получившегося каталога можно распространить на другие системы вручную с помощью PowerShell или DISM (Как интегрировать драйвера в образ Windows), или установить с помощью скриптов на основе PNPUtil, DISM, PowerShell, MDT, SCCM и т.п.

С помощью pnputil вы можете экспортировать не только сразу все драйвера, но и один определенный драйвер. Для этого вам нужно получить имя его INF файла.

Полный список драйверов можно вывести так:

Или с помощью PowerShell. Например, нам нужно экспортировать только драйвера сетевой карты Realtek:

Get-WindowsDriver -Online | where

Скопируйте имя inf файла ( oem5.inf ) и выполните следующую команду для его экспорта:

Mkdir c:\drivers\realtek
pnputil.exe /export-driver oem5.inf c:\drivers\realtek

В результате вы экспортировали inf файл сетевого драйвера rt640x64.inf со всеми необходимыми файлами.

экспорт только одного определенного драйвера с помощью встроенной утилиты pnputil в Windows

Windows 10: восстановление драйверов из резервной копии

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

Чтобы установить конкретный драйвер, щелкните правой кнопкой по INF файлу и выберите пункт меню “Установить”.

установить драйвер из inf файла

Также можно установить драйвер конкретного устройства через диспетчер оборудования. В диспетчере устройств выберите устройство, драйвер которого вы хотите заменить, выберите пункт “Обновить драйвер” -> “Выполнить поиск драйверов на этом компьютере”. Укажите путь к каталогу с резервной копией драйверов. Чтобы автоматически просканировать на подходящие драйвера все вложенные папки, выберите соответствующую опцию.

ручная установка драйвера из резевной копии

Но есть более простой способ установки сразу всех драйверов из указанного каталога. Для этого воспользуйтесь следующим PowerShell скриптом:

$driver_inf_files = Get-ChildItem -Path "C:\Drivers\" -Filter "*.inf" -Recurse -File
foreach($driver_inf_file in $driver_inf_files)$driver_inf_file.FullName
pnputil.exe -i -a "$driver_inf_file.FullName"
>

Данный PowerShell скрипт последовательно обходит все папки в указанном каталоге, ищет все inf файлы и устанавливает драйвера в хранилище драйверов (C:\Windows\System32\DriverStore) с помощью утилиты PNPUtil.

В Windows 10 и выше у утилитs pnputil появилась специальная опция subdirs, которая позволяет установить все драйвера из указанной папки (включая вложенные) с помощью однострочной команды:

pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install

Также можно импортировать все драйвера из каталога с резервной копией в офлайн Windows с помощью параметра Add-Driver утилиты DISM (в этом примере мы разрешаем установку неподписанных драйверов):

DISM /image:c:\win_image /Add-Driver /Driver:C:\Drivers /Recurse /ForceUnsigned

Редактирование реестра Windows из командной строки

Утилита командной строки REG.EXE присутствует во всех версиях операционных систем семейства Windows и используется для добавления, изменения, удаления и просмотра параметров и ключей реестра.

Формат командной строки:

Операции:

Для каждой операции, задаваемой в командной строке REG, используются свои параметры. Для получения справки по определенной операции введите:

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

1. REG QUERY – отобразить содержимое реестра.
REG QUERY имя _ раздела [ / v [ имя _ параметра ] | / ve ] [ / s ] [ / f данные [ / k ] [ / d ] [ / c ] [ / e ] ] [ / t тип ] [ / z ] [ / se разделитель ]

Параметры командной строки:

REG ADD & lt ; имя _ раздела & gt ; [ / v & lt ; имя _ параметра & gt ; | / ve ] [ / t & lt ; тип & gt ; ] [ / s & lt ; разделитель & gt ; ] [ / d данные & gt ; ] [ / f ] [ / reg : 32 | / reg : 64 ]

Параметры командной строки:

Раздел — КОРЕНЬ\< подраздел >. КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в указанном корневом разделе.

REG DELETE < имя _ раздела > [ / v < имя _ параметра > | / ve | / va ] [ / f ] [ / reg : 32 | / reg : 64 ]

Параметры командной строки:

Раздел — КОРЕНЬ\< подраздел >. КОРЕНЬ — [ HKLM | HKCU | HKCR | HKU | HKCC ]. Подраздел — полное имя подраздела реестра в указанном корневом разделе.

REG EXPORT < имя _ раздела > < имя _ файла > [ / y ] [ / reg : 32 | / reg : 64 ]

Параметры командной строки:

Читайте также: