Как скопировать список всех файлой папки через правую кнопки мыши?
Каким образом можно скопировать список всех файлов папки, щелкнув правой кнопкой мыши на ней?
Сделать это можно через редактор реестра с использование команды CMD. В контекстном меню, доступном через правую кнопку мыши, появится новая команда. При нажатии правой кнопкой мыши по любой папке выберите copylist — так назовем команду, и имена всех файлов папки будут скопированы в буфер обмена. Скопированный список можно вставить в MS Word или любой другой текстовый редактор. Таким образом вы сможете просмотреть название всех файлов, присутствующих в определенной папке.
Этот способ позволяет копировать одновременно только одну папку. Если вы выбрали несколько папок и нажали copylist, то скопируется список всех файлов только из первой выбранной папки.
Как скопировать список всех файлов папки, нажав на правую кнопку мыши?
Шаг 1: Введите REGEDIT в поле поиска в меню Пуск, чтобы открыть редактор реестра.
Шаг 2: В разделе HKEY_CLASSES_ROOT есть папка с именем shell. Найдите эту папку: HKEY_CLASSES_ROOT→ Directory→ shell.
Шаг 3: Щелкните правой кнопкой мыши по shell → Создать → Раздел. После создания нового раздела под shell переименуйте его в copylist (либо по-другому, на свое усмотрение, это название будет отображаться в контекстном меню).
Шаг 4: В copylist создайте Строковый параметр. Для этого необходимо щелкнуть правой кнопкой мыши на copylist → Создать → Строковый параметр. Переименуйте его в Копирование списка файлов
Таким образом добавилась опция copylist в контекстном меню. Можете щелкнуть правой кнопкой мыши по папке, чтобы проверить это. Однако функция не будет работать, пока вы не добавите команду, которая будет копировать список всех файлов в папке.
Шаг 5: Создайте раздел под copylist и назовите его command.
Шаг 6: Вы увидите значение строкового параметра (По умолчанию) в разделе command. Двойным щелчком по Имя (По умолчанию) откройте окно Изменение строкового параметра и в поле значения введите следующее: cmd /c dir «%1» /b /a /o:n | clip
Нажмите OK и сохраните изменения.
Шаг 7: Теперь щелкните правой кнопкой мыши на папку и выберите copylist в контекстном меню. Команда будет выполняться автоматически и название всех файлов и/или вложенные папки будут скопированы в буфер обмена Windows.
Вы можете вставить их, куда необходимо, и сохранить этот список.
В итоге, мы получили возможность копировать список файлов из папки, не нуждаясь в помощи дополнительного инструмента.
Поделиться:
Оставьте свой комментарий!
Добавить комментарий
< Предыдущая | Следующая > |
---|
Как получить список файлов в Excel с помощью VBA
Специально для примера я создал папку, в которой разместил несколько файлов различных типов и две подпапки. Вот так они выглядят:
Давайте рассмотрим несколько способов получения списка файлов.
Способ 1. Использование функции Dir
Этот способ хорош тем, что в данном случае мы не подключаем дополнительных библиотек, а пользуемся только предустановленным функционалом. Способ подойдет, если вам необходимо просто получить список файлов в папке и не нужно выводить их размер, определять тип файла, дату его создания/изменения и т.п. Тут мы получаем только наименования файлов и больше ничего.
Вот там код данной функции, который выводит на лист 1 перечень файлов.
'************************************************************** ' Sub : ExampleOne ' Author : Алексей Желтов ' Date : 15.06.2020 ' Purpose : Вывод всех файлов в папке на лист '************************************************************** Sub ExampleOne() Dim Sh As Worksheet Dim Folder As String Dim FileName As String Dim i As Long Set Sh = ThisWorkbook.Sheets(1) Folder = Sh.Cells(3, 2) ' Проверка корректности введенных данных If PathExists(Folder) = False Then MsgBox "Указанной папки не существует", 16, "Ошибка исходных данных" Exit Sub End If ' Удаляем содержимое Sh.Rows("7:" & Sh.Range("A7").End(xlDown).Row).Delete Shift:=xlUp i = 7 FileName = Dir(Folder & "/", vbNormal) Do While FileName <> "" Sh.Cells(i, 1) = i - 6 Sh.Cells(i, 2) = FileName i = i + 1 ' переход к следующему файлу FileName = Dir Loop End Sub
Тут мы проверяем существование папки с помощью дополнительной функции. Опять таки не используем сторонних библиотек, а используем туже функцию Dir.
'************************************************************** ' Function : PathExists ' Author : Алексей Желтов ' Date : 15.06.2020 ' Purpose : Возвращает ИСТИНА если путь pname существует '************************************************************** Private Function PathExists(pname As String) As Boolean On Error Resume Next If Dir(pname, vbDirectory) = "" Then PathExists = False Else PathExists = (GetAttr(pname) And vbDirectory) = vbDirectory End If End Function
Вот так выглядит результат работы функции. Программа записала список файлов на текущий лист Excel.
Здесь мы не делали проверку на тип файла и вывели все файлы которые у нас были.
Если же необходимо отобрать только определенные типы файлов, например Excel файлы, то в нашем коде необходимо сделать дополнительную проверку:
Do While FileName <> "" If LCase(FileName) Like "*xls*" Then Sh.Cells(i, 1) = i - 6 Sh.Cells(i, 2) = FileName i = i + 1 End If ' переход к следующему файлу FileName = Dir Loop
Знак «*» означает любой набор символов. Таким образом, мы учли различные версии файлов Excel (xls, xlsx, xlsm).
Способ 2. Используем объект FileSystemObject
В данном случае мы будем не просто получать названия файлов, но также определять тип файла, получать его размер и дату создания. Для этого нам потребуется использовать объект
Однако, чтобы начать его использовать придется подключить одну библиотеку. Не пугайтесь, она есть на всех компьютерах с Windows, потому скачивать ничего не придется. Чтобы подключить ее необходимо:
- Открыть пункт меню Tools и выбрать пункт References.
- Выбрать ссылку на библиотеку Microsoft Scripting Runtime.
- Нажать Ок.
Теперь перейдем к коду. Он немного упростился:
'************************************************************** ' Sub : ExampleTwo ' Author : Алексей Желтов ' Date : 15.06.2020 ' Purpose : Вывод всех файлов в папке на лист '************************************************************** Sub ExampleTwo() Dim Sh As Worksheet Dim FSO As New FileSystemObject Dim FolderPath As String Dim MyFolder As Folder Dim iFile As File Dim i As Long Set Sh = ThisWorkbook.Sheets(2) FolderPath = Sh.Cells(3, 2) ' Проверка корректности введенных данных If Not FSO.FolderExists(FolderPath) Then MsgBox "Указанной папки не существует", 16, "Ошибка исходных данных" Exit Sub End If ' Удаляем содержимое Sh.Rows("7:" & Sh.Range("A7").End(xlDown).Row).Delete Shift:=xlUp Set MyFolder = FSO.GetFolder(FolderPath) i = 7 For Each iFile In MyFolder.Files Sh.Cells(i, 1) = i - 6 Sh.Cells(i, 2) = iFile.Name Sh.Cells(i, 3) = iFile.Type Sh.Cells(i, 4) = iFile.DateCreated Sh.Cells(i, 5) = iFile.Size i = i + 1 Next End Sub
Обратите внимание на переменные. Переменная FSO — это новый экземпляр объекта FileSystemObject. Тут мы его объявляем и сразу создаем. Директива New очень важна, многие тут допускают ошибку. Также создаем объекты MyFolder и iFile — это тоже объекты FileSystemObject
Dim Sh As Worksheet Dim FSO As New FileSystemObject ' объявляем и создаем новый экземпляр объекта Dim FolderPath As String Dim MyFolder As Folder Dim iFile As File Dim i As Long
Далее делаем проверку на существование папки. В данном случае нам не нужна дополнительная функция , мы пользуемся методом FolderExists объекта (класса) FileSystemObject.
Ну и остается аналогично перебрать все файлы в директории. Тут удобно использовать цикл For Each — Next.
For Each iFile In MyFolder.Files Sh.Cells(i, 1) = i - 6 Sh.Cells(i, 2) = iFile.Name ' название файла Sh.Cells(i, 3) = iFile.Type ' тип файла Sh.Cells(i, 4) = iFile.DateCreated ' дата создания Sh.Cells(i, 5) = iFile.Size ' размер i = i + 1 Next
Результат работы программы следующий:
Способ 3. Создаем функцию, которая возвращает файлы в папке и подпапках
Напоследок разберем функцию, которая будет возвращать нам все файлы в текущей папке и во вложенных папках. Вообще это универсальная функция, которая подойдет на все случаи жизни. Смело копируйте ее в свой проект!
Итак перейдем к коду:
'************************************************************** ' Function : GetFiles ' Author : Алексей Желтов ' Date : 15.06.2020 ' Purpose : Получение файлов из папок и подпапок '************************************************************** Public Function GetFiles(ByVal Path As String, Optional ByVal Filter As String = "*", Optional ByVal Nesting As Long = 100) As Collection Dim MainFolder As Folder Dim iFolder As Folder Dim iFile As File Dim FSO As New FileSystemObject Dim MainColl As New Collection Dim iColl As Collection Dim spltFilter() As String Dim i As Long Set MainFolder = FSO.GetFolder(Path) If MainFolder Is Nothing Then Exit Function spltFilter = Split(Filter, ",") ' Перебираем файлы For Each iFile In MainFolder.Files ' Игнорируем временные файлы If InStr(1, iFile.Name, "~") = 0 Then ' Проверяем фильтры файлов For i = 0 To UBound(spltFilter) If LCase(iFile.Name) Like "*" & LCase(spltFilter(i)) Then MainColl.Add iFile, iFile.Path End If Next End If Next ' Перебираем вложенные папки If Nesting > 0 Then For Each iFolder In MainFolder.SubFolders ' рекурсивный вызов функции Set iColl = GetFiles(iFolder.Path, Filter, Nesting - 1) 'добавляем файлы из вложенных папок For i = 1 To iColl.Count MainColl.Add iColl(i), iColl(i).Path Next Next End If Set GetFiles = MainColl End Function
Разберем основные моменты этой функции. На вход она принимает один обязательный аргумент — это путь к папке Path. Также может принимать два необязательных параметра:
- Filter — перечисление списка файлов, которые мы хотим получить. Перечислять необходимо через запятую, например «doc, xls*». Вы можете использовать символ «*» чтобы включить сравнение по шаблону. По умолчанию фильтр отсутствует и возвращаются все типы файлов.
- Nesting — вложенность. Это максимальное число вложенных папок в которые «проваливается» алгоритм. По умолчанию равно 100.
В целом по алгоритму комментарии лишние, все должно быть понятно. Основной момент хочу обратить на строку 38.
For Each iFolder In MainFolder.SubFolders ' рекурсивный вызов функции Set iColl = GetFiles(iFolder.Path, Filter, Nesting - 1) 'добавляем файлы из вложенных папок For i = 1 To iColl.Count MainColl.Add iColl(i), iColl(i).Path Next Next
Тут мы рекурсивно вызываем эту же функцию. Т.е. получается что функция вызывает саму себя. И это происходит до тех пор пока либо не останется вложенных папок, либо не будет достигнут желаемый уровень вложенности.
Теперь когда наша функция готова, просто используем ее где нам требуется вот так:
'************************************************************** ' Sub : ExampleThree ' Author : Алексей Желтов ' Date : 15.06.2020 ' Purpose : Вывод всех файлов в папке на лист '************************************************************** Sub ExampleThree() Dim Sh As Worksheet Dim FolderPath As String Dim iFile As File Dim i As Long Dim Coll As Collection Dim FSO As New FileSystemObject Set Sh = ThisWorkbook.Sheets(3) FolderPath = Sh.Cells(3, 2) Set Coll = GetFiles(FolderPath) For i = 1 To Coll.Count Set iFile = Coll(i) Sh.Cells(i + 6, 1) = i Sh.Cells(i + 6, 2) = iFile.Name Sh.Cells(i + 6, 3) = FSO.GetFolder(iFile.ParentFolder).Name Sh.Cells(i + 6, 4) = iFile.Type Sh.Cells(i + 6, 5) = iFile.DateCreated Sh.Cells(i + 6, 6) = iFile.Size Next End Sub
Функция нам возвращает коллекцию файлов в папке и подпапках. Вот так:
Пример файла можете скачать по кнопке ниже и использовать в своей работе. Оставляйте комментарии, буду рад на них ответить.
Скачать
Получение списка файлов в директории на Python
Всё чаще современные программисты предпочитают работать с языком программирования Python, потому что он очень гибкий, позволяющий легко взаимодействовать с операционной системой. Он также поставляется с функциями по работе с файловой системой. Решение задачи распечатки списка файлов в директории можно решить используя разные модули: os, subprocess, fnmatch и pathlib. Следующие решения демонстрируют, как успешно воспользоваться этими модулями.
Применение os.walk()
Модуль os содержит длинный список методов, которые касаются работы с файловой системой и операционной системой. Один из них walk(), возвращающий имена файлов в дереве каталогов, двигаясь по дереву сверху вниз или снизу вверх (сверху вниз по умолчанию).
os.walk() возвращает список из трех элементов: имя корневого каталога, список имен вложенных папок и список файлов в текущем каталоге. Он одинаково хорошо работает с интерпретаторами Python 2 и 3.
import os
for root, dirs, files in os.walk("."):
for filename in files:
print(filename)
Использование командной строки, через subprocess
Модуль subprocess позволяет выполнить системную команду и собрать её результат. В нашем случае вызываемая системная команда выглядит следующим образом:
$ ls -p . | grep -v /$
Инструкция ls -p . распечатывает список файлов текущего каталога, добавляя разделитель / в конце имени каждого подкаталога, которые нам понадобится на следующем шаге. Вывод этого вызова передается команде grep, которая отфильтровывает данные по мере поступления. Параметры -v / $ исключают все имена записей, которые заканчиваются разделителем /. Фактически / $ — регулярное выражение, которое соответствует всем строкам, содержащим символ / самым последним символом в строке, который определяется символом $.
Модуль subprocess позволяет строить настоящие конвейеры, а также соединять входные и выходные потоки, как это делается в командной строке. Вызов метода subprocess.Popen() открывает соответствующий процесс и определяет два параметра stdin и stdout.
Первая переменная ls определяет процесс выполнения ls –p для захвата stdout в конвейере. Поэтому поток stdout определяется как subprocess.PIPE. Вторая переменная grep также определяется как процесс, но вместо этого выполняет инструкцию grep –v /$.
Чтобы прочитать вывод команды ls из конвейера, поток stdin grep присваиваивается в ls.stdout. В заключение, переменная endOfPipe считывает вывод команды grep из grep.stdout, затем распечатывается в stdout циклом for.
import subprocess
# определение команды ls
ls = subprocess.Popen(["ls", "-p", "."],
stdout=subprocess.PIPE,
)
# определение команды grep
grep = subprocess.Popen(["grep", "-v", "/$"],
stdin=ls.stdout,
stdout=subprocess.PIPE,
)
# чтение из данных из потока stdout
endOfPipe = grep.stdout
# распечатка файлов в строку
for line in endOfPipe:
print(line)
Запуск файла
$ python find-files3.py
find-files2.py
find-files3.py
find-files4.py
...
Данное решение работает достаточно хорошо с Python 2 и 3, но его можно улучшить. Рассмотрим другие варианты.
Комбинация os и fnmatch
Решение, использующее подпроцессы, элегантно, но требует большого количества кода. Вместо этого, давайте объединим методы из двух модулей os и fnmatch. Этот вариант также работает с Python 2 и 3.
В качестве первого шага, импортируем модули os и fnmatch. Далее определим каталог, в котором нужно перечислить файлы, используя os.listdir(), а также шаблон для фильтрации файлов. В цикле for выполняется итерация списка записей, хранящихся в переменной listOfFiles.
В завершение, с помощью fnmatch отфильтровываются искомые записи и распечатываются соответствующие записи в stdout.
import os, fnmatch
listOfFiles = os.listdir('.')
pattern = "*.py"
for entry in listOfFiles:
if fnmatch.fnmatch(entry, pattern):
print(entry)
Результат выполнения
$ python find-files.py
find-files.py
find-files2.py
find-files3.py
...
Использование os.listdir() и генераторов
Следующий вариант объединяет метод os.listdir() с функцией генератором. Код работает как с версиями 2, так и с 3 Python.
Как уже было сказано ранее, listdir() возвращает список записей для данного каталога. Метод os.path.isfile() возвращает True, если данная запись является файлом. Оператор yield завершает работу функции, но сохраняя текущее состояние и возвращает только имя записи являющейся файлом.
import os
def files(path):
for file in os.listdir(path):
if os.path.isfile(os.path.join(path, file)):
yield file
for file in files("."):
print(file)
Использование pathlib
Модуль pathlib предназначен для парсинга, сборки, тестирования и иной работы с именами файлов и их путями, используя объектно-ориентированный API вместо низкоуровневых строковых операций. Начиная с Python 3 модуль находится в стандартной библиотеке.
В следующем листинге определяется текущий каталог точкой («.»). Затем метод iterdir() возвращает итератор, который возвращает имена всех файлов. Далее циклом for распечатываются имена файлов друг за другом.
import pathlib
# определение пути
currentDirectory = pathlib.Path('.')
for currentFile in currentDirectory.iterdir():
print(currentFile)
В качестве альтернативы, можно отфильтровать файлы по именам с помощью метода glob. Таким образом, получаем требуемые файлы. Например, в приведенном ниже коде перечисляются Python файлы в выбранном каталоге, указав шаблон «*.py» в glob.
import pathlib
# определение пути
currentDirectory = pathlib.Path('.')
# определение шаблона
currentPattern = "*.py"
for currentFile in currentDirectory.glob(currentPattern):
print(currentFile)
Использование os.scandir()
В Python 3.6 добавлен новый метод scandir(), доступный из модуля os. Как понятно из названия он значительно упрощает получение списка файлов в каталоге.
Чтобы определить текущий рабочий каталог и сохранить его, инициализируем значение переменной path, для этого импортируем модуль os и вызовем функцию getcwd(). Далее, scandir() возвращает список записей для выбранного пути, которые проверяются на принадлежность файлу, используя метод is_file().
import os
# определение текущей рабочей директории
path = os.getcwd()
# чтение записей
with os.scandir(path) as listOfEntries:
for entry in listOfEntries:
# печать всех записей, являющихся файлами
if entry.is_file():
print(entry.name)
Вывод
Ведутся споры, какой вариант является лучшим, какой наиболее элегантным и какой является наиболее «питоничным». Мне нравится простота метода os.walk(), а также модули fnmatch и pathlib.
Две версии с процессами/конвейером и итератором требуют более глубокого понимания процессов UNIX и знаний Python, поэтому они не могут быть предпочтительными для всех программистов из-за их дополнительной (и избыточной) сложности.
Чтобы найти ответ на этот вопрос, выберем самой быстрой из них, воспользовавшись удобным модулем timeit. Данный модуль подсчитывает время, прошедшее между двумя событиями.
Для сравнения всех решений без их изменений, воспользуемся функциональностью Python: вызовем интерпретатор с модулем timeit и соответствующим Python скриптом. Для автоматизации процесса напишем shell скрипт
#! /bin/bash
for filename in *.py; do
echo "$filename:"
cat $filename | python3 -m timeit
echo " "
done
Тесты проводились с использованием Python 3.6. Среди всех тестов os.walk() показала себя наилучшим образом. Выполнение тестов с помощью Python 2 возвращает разные значения, но os.walk() по-прежнему находится на вершине списка.
создание, изменение, удалений файлов ~ PythonRu
Обработка файлов в Python с помощью модуля os включает создание, переименование, перемещение, удаление файлов и папок, а также получение списка всех файлов и каталогов и многое другое.
В индустрии программного обеспечения большинство программ тем или иным образом обрабатывают файлы: создают их, переименовывают, перемещают и так далее. Любой программист должен обладать таким навыком. С этим руководством вы научитесь использовать модуль os в Python для проведения операций над файлами и каталогами вне зависимости от используемой операционной системы.
Важно знать, что модуль os используется не только для работы с файлами. Он включает массу методов и инструментов для других операций: обработки переменных среды, управления системными процессами, а также аргументы командной строки и даже расширенные атрибуты файлов, которые есть только в Linux.
Модуль встроенный, поэтому для работы с ним не нужно ничего устанавливать.
Вывод текущей директории
Для получения текущего рабочего каталога используется os.getcwd()
:
import os
print("Текущая деректория:", os.getcwd())
os.getcwd()
возвращает строку в Юникоде, представляющую текущий рабочий каталог. Вот пример вывода:
Текущая деректория: C:\python3\bin
Создание папки
Для создания папки/каталога в любой операционной системе нужна следующая команда:
os.mkdir("folder")
После ее выполнения в текущем рабочем каталоге тут же появится новая папка с названием «folder».
Если запустить ее еще раз, будет вызвана ошибка FileExistsError
, потому что такая папка уже есть. Для решения проблемы нужно запускать команду только в том случае, если каталога с таким же именем нет. Этого можно добиться следующим образом:
if not os.path.isdir("folder"):
os.mkdir("folder")
Функция os.path.isdir()
вернет True
, если переданное имя ссылается на существующий каталог.
Изменение директории
Менять директории довольно просто. Проделаем это с только что созданным:
os.chdir("folder")
Еще раз выведем рабочий каталог:
print("Текущая директория изменилась на folder:", os.getcwd())
Вывод:
Текущая директория изменилась на folder: C:\python3\bin\folder
Создание вложенных папок
Предположим, вы хотите создать не только одну папку, но и несколько вложенных:
os.chdir("..")
os.makedirs("nested1/nested2/nested3")
Это создаст три папки рекурсивно, как показано на следующем изображении:
Создание файлов
Для создания файлов в Python модули не нужны. Можно использовать встроенную функцию open()
. Она принимает название файла, который необходимо создать в качестве первого параметра и желаемый режим открытия — как второй:
text_file = open("text.txt", "w")
text_file.write("Это текстовый файл")
w
значит write (запись), a
— это appending (добавление данных к уже существующему файлу), а r
— reading (чтение). Больше о режимах открытия можно почитать здесь.
Переименование файлов
С помощью модуля os достаточно просто переименовать файл. Поменяем название созданного в прошлом шаге.
os.rename("text.txt", "renamed-text.txt")
Функция os.rename()
принимает 2 аргумента: имя файла или папки, которые нужно переименовать и новое имя.
Перемещение файлов
Функцию os.replace()
можно использовать для перемещения файлов или каталогов:
os.replace("renamed-text.txt", "folder/renamed-text.txt")
Стоит обратить внимание, что это перезапишет путь, поэтому если в папке folder
уже есть файл с таким же именем (renamed-text.txt
), он будет перезаписан.
Список файлов и директорий
print("Все папки и файлы:", os.listdir())
Функция os.listdir()
возвращает список, который содержит имена файлов в папке. Если в качестве аргумента не указывать ничего, вернется список файлов и папок текущего рабочего каталога:
Все папки и файлы: ['folder', 'handling-files', 'nested1', 'text.txt']
А что если нужно узнать состав и этих папок тоже? Для этого нужно использовать функцию os.walk()
:
for dirpath, dirnames, filenames in os.walk("."):
for dirname in dirnames:
print("Каталог:", os.path.join(dirpath, dirname))
for filename in filenames:
print("Файл:", os.path.join(dirpath, filename))
os.walk()
— это генератор дерева каталогов. Он будет перебирать все переданные составляющие. Здесь в качестве аргумента передано значение «.», которое обозначает верхушку дерева:
Каталог: .\folder
Каталог: .\handling-files
Каталог: .\nested1
Файл: .\text.txt
Файл: .\handling-files\listing_files.py
Файл: .\handling-files\README.md
Каталог: .\nested1\nested2
Каталог: .\nested1\nested2\nested3
Метод os.path.join()
был использован для объединения текущего пути с именем файла/папки.
Удаление файлов
Удалим созданный файл:
os.remove("folder/renamed-text.txt")
os.remove()
удалит файл с указанным именем (не каталог).
Удаление директорий
С помощью функции os.rmdir()
можно удалить указанную папку:
os.rmdir("folder")
Для удаления каталогов рекурсивно необходимо использовать os.removedirs()
:
os.removedirs("nested1/nested2/nested3")
Это удалит только пустые каталоги.
Получение информации о файлах
Для получения информации о файле в ОС используется функция os.stat()
, которая выполняет системный вызов stat()
по выбранному пути:
open("text.txt", "w").write("Это текстовый файл")
print(os.stat("text.txt"))
Вывод:
os.stat_result(st_mode=33206, st_ino=14355223812608232, st_dev=1558443184, st_nlink=1, st_uid=0, st_gid=0, st_size=19, st_atime=1575967618, st_mtime=1575967618, st_ctime=1575966941)
Это вернет кортеж с отдельными метриками. В их числе есть следующие:
st_size
— размер файла в байтахst_atime
— время последнего доступа в секундах (временная метка)st_mtime
— время последнего измененияst_ctime
— в Windows это время создания файла, а в Linux — последнего изменения метаданных
Для получения конкретного атрибута нужно писать следующим образом:
print("Размер файла:", os.stat("text.txt").st_size)
Вывод:
Размер файла: 19
На этой странице больше об атрибутах.
Выводы
Работать с файлами и каталогами в Python очень просто. Не имеет значения даже используемая операционная система, хотя отдельные уникальные для системы функции можно использовать: например, os.chown()
или os.chmod()
в Linux. Более подробно эта тема освещена в официальной документации Python.
Копирование, перемещение, создание и удаление файлов и каталогов
Частыми операциями в файловой структуре являются создание файлов и каталогов, их копирование, перемещение, переименование, а также удаление. Очевидно для подобных действий в командной оболочке Linux должны быть предусмотрены специальные команды.
Копирование файлов и каталогов
В Bash для копирования файлов используется команда cp (от «copy»), которой обычно передаются два аргумента:
адрес с именем исходного файла,
новый адрес с именем или просто адрес каталога, куда помещается копия.
Адрес может быть как абсолютным, так относительным. Если операции с файлами выполняются в текущем каталоге, то указывать адрес смысла нет. Пишется только имя исходного файла и имя копии. Поскольку файлов с одинаковыми именами и адресами быть не может, имя копии должно отличаться от имени исходного файла.
Рассмотрим примеры.
cp readme readme2
В данном случае создается копия файла readme, которая остается в той же директории под именем readme2.
cp readme Desktop/
В папку Desktop копируется файл readme. Здесь текущим является родительский Desktop’у каталог. Имена копии и файла оригинала будут совпадать, а вот полные адреса – нет.
cp /home/irina/tux.png /mnt/D/pingvin.png
Здесь копируется файл из одного каталога в другой, используются абсолютные адреса, имя копии изменяется.
Если надо скопировать несколько разных файлов в один и тот же каталог, то после команды cd сначала перечисляются все файлы-оригиналы, а последним указывается каталог, куда помещаются копии. Понятно, что при таком групповом действии имена файлов изменить нельзя.
Чтобы скопировать каталог со всем его содержимым, необходимо использовать ключ -r команды cp:
cp -r ./letters ./oldletters
Перемещение и переименование
В Bash-оболочке Linux для перемещения и переименования используется одна и та же команда – mv (от «move» – перемещать). Переименование можно рассматривать как частный случай перемещения, ведь по-сути изменяется полный адрес файла, что равносильно перемещению, даже если файл остается в том же каталоге.
Также как в случае cp, для mv необходимо указать пару аргументов. Выбор между перемещением и переименованием зависит от того, что это за аргументы. При перемещении файл меняет свой адрес, следовательно, если в первом и втором аргументах указаны разные адреса, то произойдет перемещение. Если адреса одинаковые, а различаются только имена, происходит переименование. Кроме того, перемещение может быть совмещено с переименованием.
В случае перемещения без переименования во втором аргументе указывается только каталог места назначения.
mv document.txt Work
mv document.txt Work/doc23.txt
Здесь в первом случае файл document.txt перемещается в каталог Work. Во-втором случае одновременно происходит перемещение файла и его переименование: файл document.txt перемещается в директорию Work и получает новое имя doc23.txt.
При использовании команды mv для переименования в качестве второго аргумента указывается новое имя:
mv order.txt orderNew.txt
mv Work/list.odt Work/names.odt
Каталоги перемещаются и переименовываются по тому же принципу, что и файлы. Групповое перемещение файлов работает также, как с командой cp.
Создание файлов и каталогов
Новые директории создаются командой mkdir. Например, чтобы создать каталог Work в текущей директории необходимо выполнить следующую команду:
mkdir Work
илиmkdir ./Work
Существует множество способов создания файлов, обычно они создаются какой-либо программой. Если все же возникает необходимость создать пустой файл, сделать это можно с помощью программы touch. В качестве аргумента ей передается имя создаваемого файла. Еще один способ – перенаправление вывода какой-либо команды в файл. Пример:
cal > ./Work/January
Здесь программа cal выводит календарь на текущий месяц, а поскольку стоит знак перенаправления вывода, то вывод команды будет записан в файл January, находящийся в папке Work.
Удаление файлов и каталогов
Для удаления файлов используется команда rm. Например:
rm ghost.png
Командой rmdir можно удалить пустой каталог. Если же каталог не пуст, следует использовать команду rm с ключом -r:
Вопросы
У вас в каталоге есть файлы с разными расширениями. Вам надо группу файлов, имеющих одно и тоже расширение, скопировать в другой каталог. Как это сделать одной командой?
Какой ключ надо использовать, чтобы при перемещении случайно не перезаписать уже имеющийся в каталоге файл с таким именем?
Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.
XCOPY копирование файлов и папок
XCOPY копирование файлов и папок
XCOPY копирует файлы и каталоги, включая подкаталоги в командной строке Windows. Это мощная команда для копирования файлов и папок, имеет больше параметров чем простая команда COPY.
Параметры утилиты XCOPY
xcopy источник [результат] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:файл1[+[файл2]][+[файл3]] [{/y|/-y}] [/z]
- источник — Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
- результат — Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
- /w — Выводит следующее сообщение с ожиданием подтверждения начала копирования: Нажмите любую клавишу, чтобы начать копирование файлов
- /p — Запрашивает подтверждение при создании каждого файла-результата.
- /c — Игнорирует ошибки.
- /v — Проверяет каждый скопированный файл на соответствие его оригиналу.
- /q — Отменяет вывод на экран сообщений команды xcopy.
- /f — Выводит имена исходных файлов и файлов-результатов в процессе копирования.
- /l — Отображает список копируемых файлов.
- /g — Создает незашифрованные файлы-результаты.
- /d[:мм-дд-гггг] — Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
- /u — Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата.
- /i — Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат — это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом.
- /s — Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
- /e — Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t.
- /t — Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e.
- /k — Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения».
- /r — Копирует файлы с атрибутом «только для чтения».
- /h — Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы.
- /a — Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут «архивный» у исходных файлов не меняется. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
- /m — Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
- /n — Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS.
- /o — Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL).
- /x — Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p).
- /exclude:файл1[+[файл2]][+[файл3]] — Определяет список файлов, содежащих строки.
- /y — Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
- /-y — Выдает запрос на подтверждение перезаписи существующего конечного файла.
- /z — Копирует по сети в режиме перезапуска.
- /? — Отображает справку в командной строке.
Примеры команды XCOPY
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска D на диск E, введите:
xcopy D: E: /s /e
Как скопировать путь к файлу вместе с именем файла в Windows
Небольшая статья из серии лайфхаков в Windows. Всем нам время от времени приходится копировать пути к файлам и папкам. Кому-то чаще, кому-то реже. Скопировать путь к папке у большинства пользователей проблем не возникает — помогает адресная строка в проводнике. Но она копирует именно путь к текущей папке. А если нам нужно указать путь до конкретного файла в папке? Сделать это тоже просто.
Для начала посмотрим на адресную строку в Windows. Допустим, что у нас есть файл C:\primer\new.txt. Заходим в каталог C:\primer, щёлкаем правой кнопкой мыши по адресной строке и выбираем вариант Копировать адрес как текст. Затем пытаемся вставить этот текст, например, в командную строку. Мы получим именно адрес папки, но не конкретного файла в ней. Конечно, можно дописать имя файла вручную, но это так себе вариант. Давайте посмотрим, как можно обойтись без этого.
Есть несколько способов скопировать путь к файлу вместе с именем этого файла. Не ручаюсь, что знаю все, но три подскажу.
Во-первых, можно открыть свойства файла, перейти на вкладку Безопасность, выделить то, что написано в поле Имя объекта, щёлкнуть правой кнопкой мыши и выбрать вариант Копировать (ну или просто Ctrl+C).
Возможно, этот путь покажется вам неудобным из-за большого числа действий. Честно говоря, у этого способа есть ещё один существенный недостаток — копировать путь в командную строку таким образом можно, но не нужно. Но об этом далее.
Во-вторых, можно зажать клавишу Shift и щёлкнуть по нужному файлу правой кнопкой мыши. Вы увидите, что в контекстном меню появился пункт Копировать как путь.
В-третьих, есть очень занятный способ именно для командной строки. Просто перетащите интересующий вас файл в окно командной строки. Вы увидите, что скопировался его путь.
Обратите внимание на скриншот выше. На нём мы скопировать пути двух файлов: C:\primer\new.txt и C:\primer\new file.txt. Во втором случае путь заключен в кавычки. Почему? Он содержит пробел. Без кавычек командная строка не воспримет такой путь. Причём удобно то, что система сама ставит их, когда они нужны. А во втором способе (через контекстное меню и Копировать как путь) она ставит их всегда, что, в принципе, тоже неплохо — не ошибётесь. Но вот если надо вставить путь в текстовый файл, в браузер или ещё куда-то, то туда он тоже вставится с кавычками.
Это всё о том, почему не нужно копировать в командную строку путь к файлу через свойства файла. В этом случае кавычки не поставятся. Если путь не содержит пробелов — проблем не будет. Но дело в том, что вы можете привыкнуть использовать этот способ всегда, и рано или поздно он вас подведёт.
Подводя итог, я не могу выделить самый лучший вариант из перечисленных. Постараюсь подытожить.
- Через свойства файла, вкладка Безопасность — путь всегда копируется без кавычек;
- Через Shift, контекстное меню и Копировать как путь — путь всегда копируется с кавычками;
- Перетаскивание файла в окно командной строки — способ только для командной строки, кавычки подставляются автоматически при необходимости.
Исходя из вышеизложенного, выбирайте сами тот способ, который кажется удобнее.
windows — Как скопировать все имена файлов в папке в блокнот?
windows — Как скопировать все имена файлов в папке в блокнот? — СуперпользовательСеть обмена стеков
Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange- 0
- +0
- Авторизоваться Подписаться
Super User — это сайт вопросов и ответов для компьютерных энтузиастов и опытных пользователей.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуКто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено 182к раз
Я часто хочу скопировать все имена файлов с полным путем и расширениями в папке в «.txt «, но не могу. Есть простой способ сделать это? Как? Есть ли простой пакетный файл, который это сделает? Бесплатное программное обеспечение может работать, но я бы предпочел простой файл batch.bat или .exe, который работает
Ан Дорфер1,17022 золотых знака88 серебряных знаков1313 бронзовых знаков
Создан 20 окт.
Repanarepana30111 золотой знак33 серебряных знака33 бронзовых знака
Открыть командную строку
Перейдите в нужный каталог с помощью
компакт-диска «Документы»
каталог / B> список файлов.txt
Откройте filelist.txt или переместите его в нужное место.
Мой вывод:
C: \ Users \ Tom \ Documents> каталог / B
all.css
BFBC2
Образы дисков
Факс
Fiddler2
gegl-0.0
Сетевой монитор 3
Отсканированные документы
SQL Server Management Studio
SweetScape
Виртуальные машины
Visual Studio 2010
Вы можете ограничиться только файлами с dir / B / A-D
. / AD означает только каталоги, / A-D означает не каталоги.
Создан 20 окт.
Том РиттерТом Риттер2,1161010 серебряных знаков2222 бронзовых знака
4Какая версия винды? По крайней мере, в Windows 7 (должно работать и в Win8) вы можете выбрать файлы, нажать Shift и щелкнуть правой кнопкой мыши.Теперь вы увидите новую опцию Копировать как путь , которую вы можете щелкнуть, а затем вставить пути в Блокнот.
Создан 20 окт.
КаранКаран10.9k1919 золотых знаков107107 серебряных знаков176176 бронзовых знаков
2Откройте Блокнот и введите следующие строки.
каталог / a / b / -p / o: gen> names.txt
Сохраните этот файл с расширением .bat. Переместите файл .bat в папку, в которую вы хотите получить список имен файлов. Дважды щелкните файл bat. Будет создан один файл с именем names.txt со списком имен файлов.
Создан 02 июн.
Сатья Сатья6111 серебряный знак11 бронзовый знак
Выберите все файлы в папке, Shift + Щелкните правой кнопкой мыши , скопируйте как путь, вставьте в doc / excel / text / email
Дэвид Постилл ♦13k7272 золотых знака305305 серебряных знаков332332 бронзовых знака
Создан 19 фев.
3В Windows 7 и новее это так просто!
(Вам не нужны специальные инструменты или даже командная строка.)
- В проводнике Windows выберите нужные файлы
- Shift + Щелкните правой кнопкой мыши (сделает «Копировать как путь» доступным в контекстном меню)
- Нажмите «Копировать как путь»
- Вставить в Блокнот (или куда угодно)
Спасибо https://www.buildsometech.com/2020/03/copy-file-names-into-excel-from-folder.html
Создан 25 сен.
Райан Райан1,9779 золотых знаков2828 серебряных знаков5353 бронзовых знака
(для% F в (*) do @echo% ~ dpnxF) | sort> filelist.txt
создаст отсортированный список файлов (с полными путями) в текущем каталоге в файле с именем filelist.txt
. Измените *
на любой шаблон каталога \ пути, который вы хотите. Имейте в виду, что он будет включать filelist.txt и
, если вы перечисляете текущий каталог, поэтому вместо этого лучше запускать из родительского каталога.
Создан 20 окт.
wmzwmz6,59211 золотых знаков1515 серебряных знаков3030 бронзовых знаков
Загрузите xplorer² lite, выберите все файлы в папке и скопируйте все имена файлов с полным путем и расширениями в буфер обмена, блокнот, Word или Excel с помощью сочетания клавиш Alt + C или щелкните «Правка», а затем «Копировать имена».Работает очень красиво и легко.
Создан 05 июня ’15 в 16: 062015-06-05 16:06
Высокоактивный вопрос . Заработайте 10 репутации, чтобы ответить на этот вопрос. Требование репутации помогает защитить этот вопрос от спама и отсутствия ответов.Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами windows или задайте свой вопрос.
Суперпользователь лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Как мне копировать файлы, добавляя имя папки к имени файла назначения?
Первый командный файл работает даже с одним или несколькими восклицательными знаками !
в любом имени файла или папки.
@ эхо выкл.
setlocal EnableExtensions DisableDelayedExpansion
установить "SourceFolder =% ~ 1"
если не определено, SourceFolder установите "SourceFolder = C: \ Old"
установить "SourceFolder =% SourceFolder: / = \%"
если не "% SourceFolder: ~ -1%" == "\" установите "SourceFolder =% SourceFolder% \"
установить "TargetFolder =% ~ 2"
если не определен TargetFolder, установите TargetFolder = C: \ New \
установить "TargetFolder =% TargetFolder: / = \%"
если не "% TargetFolder: ~ -1%" == "\" установите "TargetFolder =% TargetFolder% \"
установить "TargetCreated ="
если не существует "% TargetFolder%" (
md "% TargetFolder%" 2> нуль
если не существует "% TargetFolder%" (
echo ОШИБКА: не удалось создать папку назначения:
эхо /
echo "% TargetFolder%"
эхо /
Пауза
goto EndBatch
)
установить "TargetCreated = yes"
)
for / F "delims =" %% I in ('dir "% SourceFolder% *" / A-D-H / B / S 2 ^> nul ^ |% SystemRoot% \ System32 \ findstr.exe / B / L / V / C: "% TargetFolder: \ = \\%" ') вызовите: FileCopy "%% I"
если определено TargetCreated rd "% TargetFolder%" 2> nul
goto EndBatch
: FileCopy
установить "FilePath =% ~ dp1"
установить "FilePath =% FilePath: ~ 0, -1%"
для %% J в ("% FilePath%") установите "FolderName = %% ~ nxJ-"
if "% FilePath: ~ -1%" == ":" установить "FolderName ="
copy / Y% 1 "% TargetFolder %% FolderName %% ~ nx1"> nul
goto: EOF
: EndBatch
endlocal
Недостатком является то, что этот пакетный файл медленнее копирует тысячи файлов по сравнению со вторым пакетным файлом ниже.
@ эхо выкл.
setlocal EnableExtensions DisableDelayedExpansion
установить "SourceFolder =% ~ 1"
если не определено, SourceFolder установите "SourceFolder = C: \ Old"
установить "SourceFolder =% SourceFolder: / = \%"
если не "% SourceFolder: ~ -1%" == "\" установите "SourceFolder =% SourceFolder% \"
установить "TargetFolder =% ~ 2"
если не определен TargetFolder, установите TargetFolder = C: \ New \
установить "TargetFolder =% TargetFolder: / = \%"
если не "% TargetFolder: ~ -1%" == "\" установите "TargetFolder =% TargetFolder% \"
установить "TargetCreated ="
если не существует "% TargetFolder%" (
md "% TargetFolder%" 2> нуль
если не существует "% TargetFolder%" (
echo ОШИБКА: не удалось создать папку назначения:
эхо /
echo "% TargetFolder%"
эхо /
Пауза
goto EndBatch
)
установить "TargetCreated = yes"
)
setlocal EnableDelayedExpansion
for / F "delims =" %% I in ('dir "% SourceFolder% *" / A-D-H / B / S 2 ^> nul ^ |% SystemRoot% \ System32 \ findstr.exe / B / L / V / C: "% TargetFolder: \ = \\%" ') do (
установить "FilePath = %% ~ dpI"
установите "FilePath =! FilePath: ~ 0, -1!"
для %% J в ("! FilePath!") установите "FolderName = %% ~ nxJ-"
if "! FilePath: ~ -1!" == ":" установить "FolderName ="
copy / Y "%% I" "% TargetFolder%! FolderName! %% ~ nxI"> nul
)
endlocal
если определено TargetCreated rd "% TargetFolder%" 2> nul
: EndBatch
endlocal
Оба пакетных файла могут быть запущены без аргументов, с одним аргументом, интерпретируемым как путь к исходной папке, или с двумя аргументами, второй аргумент которых интерпретируется как путь к целевой папке. C: \ Old
определяется как путь к исходной папке, если пакетный файл запускается без аргументов, C: \ New
определяется как путь к целевой папке, если пакетный файл запускается без второго аргумента. В пакетных файлах оба пути к папкам заканчиваются обратной косой чертой.
Целевая папка создается, если еще не существует, с подтверждением успешного создания целевой папки. Выводится сообщение об ошибке, и выполнение командного файла останавливается до того, как завершение выполнения командного файла в целевой папке не может быть успешно создано.
Возможно, что папка назначения является подпапкой исходной папки. По этой причине командная строка с DIR и FINDSTR выполняется FOR в отдельном командном процессе, выполняемом в фоновом режиме, запущенном с % ComSpec% / c
, и указанная командная строка добавлена для получения всех имен файлов для копирования с фильтрацией всех имен файлов в дереве исходных папок, начиная с пути к папке, равного пути к целевой папке. Таким образом, выполняется ДЛЯ , например:
C: \ Windows \ System32 \ cmd.exe / c dir "C: \ Old \ *" / A-D-H / B / S 2> nul | C: \ Windows \ System32 \ findstr.exe / B / L / V / C: "% C: \ New \\"
DIR поисков
- в указанном каталоге
C: \ Old
и все его подкаталоги из-за опции/ S
- для нескрытых файлов из-за опции
/ A-D-H
(атрибут не каталог и не скрытый) - соответствует шаблону подстановки
*
(любое имя файла) и - выходов найдено в голом формате только имена файлов из-за опции
/ B
- с полным путем из-за опции
/ S
.
Этот вывод DIR перенаправляется запущенным cmd.exe
в фоновом режиме на FINDSTR , который
- ищет только в начале всех строк из-за опции
/ B
- для буквальной интерпретируемой строки, явно указанной с опцией
/ L
- для строки поиска, указанной с опцией
/ C:
, в которой каждая обратная косая черта экранируется еще одной обратной косой чертой - и выводит инвертированный результат из-за опции
/ V
, что означает, что все строки НЕ начинаются со строки поиска.
Примечание: Исходная папка, например C: \ Old \ Temp
, и целевая папка C: \ Old
приводит к тому, что никакие файлы не копируются. Другими словами, папка назначения может быть подпапкой исходной папки, но исходная папка не может быть подпапкой целевой папки.
Выходные данные FINDSTR для обработки STDOUT (стандартный вывод) запущенного командного процесса захватываются FOR и обрабатываются построчно после запуска cmd.
на ДЛЯ командной строки, чтобы интерпретироваться как буквальные символы, когда интерпретатор команд Windows обрабатывает эту командную строку перед выполнением команды ДЛЯ , которая выполняет встроенную командную строку в отдельном командном процессе, запущенном в фоновом режиме.
ДЛЯ с опцией / F
по умолчанию игнорирует все пустые строки, которые здесь не встречаются.
FOR с опцией / F
по умолчанию разделит каждую строку на подстроки с использованием обычного пробела и горизонтальной табуляции в качестве разделителей строк и назначит только первую строку с разделителями пробелом / табуляцией указанной переменной цикла I
.Имя файла / папки может содержать один или несколько пробелов. По этой причине опция delims =
указана в двойных кавычках для определения пустого списка разделителей, который полностью отключает разделение строк, чтобы полностью присвоить каждому полному квалифицированному имени файла переменную цикла I
.
ДЛЯ с опцией / F
по умолчанию игнорирует также все строки, начинающиеся с точки с запятой, после удаления разделителей (здесь их нет) в начале каждой строки из-за eol =;
— это значение по умолчанию для параметра конца строки.Но имена файлов с полным путем всегда начинаются либо с буквы диска и двоеточия, либо с двух обратных косых черт в случае, если путь к исходной папке указан в формате UNC. Таким образом, нет необходимости изменять параметр конца строки по умолчанию.
Первый пакетный файл вызывает подпрограмму FileCopy
с текущим полным именем файла в качестве первого и единственного аргумента, чтобы избежать использования отложенного расширения.
Второй пакетный файл использует отложенное расширение переменной среды, которое работает быстрее, но имеет недостаток, заключающийся в том, что восклицательный знак в имени папки или файла интерпретируется как начало / конец отложенной ссылки на расширенную переменную среды и, следовательно, все, что находится между двумя !
заменяется значением указанной переменной среды или ничем, если не существует переменной среды с таким именем и единственным !
просто удаляется из строки файла / папки.
Полный путь к файлу назначается переменной среды FilePath
. Путь к файлу всегда заканчивается обратной косой чертой, которую необходимо удалить, прежде чем можно будет определить имя папки с помощью еще одного FOR , назначенного FolderName
. %% ~ nxJ
ссылается на все, что находится после последней обратной косой черты, которая обычно является именем файла и расширением файла, но в данном случае именем папки, содержащей файл. Дефис уже добавлен к имени папки.
Примечание: Файлы в корневой папке диска, указанного как исходная папка, например C: \
, копируются этим пакетным файлом, причем имя файла назначения является именем исходного файла.
Текущий файл копируется с именем файла назначения, являющимся именем исходного файла с именем папки и дефисом, вставленным в начале, за исключением файлов в корневом каталоге диска. Этот пакетный файл не проверяет успешное копирование файла.
Пакетные файлы удаляют целевую папку при создании ранее, а целевая папка все еще пуста, потому что в дереве исходных папок не найден файл для копирования.
Чтобы понять, какие команды используются и как они работают, откройте окно командной строки, выполните в нем следующие команды и внимательно прочтите все страницы справки, отображаемые для каждой команды.
-
звонок /?
-
копия /?
-
директ /?
-
эхо /?
-
endlocal /?
-
findstr /?
-
перейти /?
-
если /?
-
мкр /?
-
пауза /?
-
рд /?
-
комплект /?
-
setlocal /?
См. Также:
бесплатное расширение проводника Windows
Программное обеспечение ExtraBit- Дом
- Копировать
Что такое CopyFilenames?
CopyFilenames — это расширение для проводника Windows.Его нельзя запускать как отдельное приложение. После установки CopyFilenames щелкните правой кнопкой мыши один или несколько файлов или папок в проводнике Windows, и вы см. дополнительные команды, добавленные CopyFilenames.
Для чего это?
Windows не имеет встроенного способа скопировать имя файла или список папок в буфер обмена. Для одного файла вы можете использовать File> Rename , CTRL + C , затем ESC , чтобы скопировать имя файла. в буфер обмена, но это довольно утомительно, если вам приходится делать это часто или для большого количества файлов.
На помощь приходит CopyFilenames! Это добавляет дополнительную команду меню в контекстное меню в Проводник Windows (это меню, которое появляется, когда вы щелкаете правой кнопкой мыши по файлу). Эта команда позволяет скопировать имя файла за одну операцию.
CopyFilenames также можно использовать для копирования множества имён файлов за один раз. По умолчанию имена файлов копируются по одному в каждой строке.
Копирование полных путей
CopyFilenames также позволяет очень легко скопировать полный путь к файлу.Если удерживать нажатой клавишу SHIFT при выборе команды Копировать имена файлов , будет скопирован полный путь к файлу, а не только имя файла. Затем этот путь можно вставить в любое приложение, в котором есть поле для пути к файлу, или в панель открытия файла.
Это может реально сэкономить время, если у вас уже есть нужная папка, открытая в проводнике Windows, поскольку вам больше не нужно переходить к той же самой папке. папку в другом приложении, чтобы использовать файл в этой папке!
Включая атрибуты файла
Это не просто конец — вы также можете указать размер файла или дату последнего изменения, а не только имя файла.Чтобы выбрать эти параметры, удерживайте нажатой клавишу CTRL при выборе Копировать имена файлов , чтобы открыть панель параметров. Если вы выбрали вариант копирования полного пути, вы также можете выбрать, чтобы обратные косые черты удваиваются (программисты оценят это значение) или вместо них используются косые черты. Также можно заключить имена в одинарные или двойные кавычки.
Эти дополнительные атрибуты отделены табуляцией от имени файла, поэтому они могут, например, быть легко вставленным в программу для работы с электронными таблицами, такую как Excel, так что имена файлов будут в одном столбце и размеры в следующем.
Замена одного файла другим
Помимо возможности копировать имена файлов, эта утилита также добавляет две другие команды, которые появляются при необходимости. Эти команды можно использовать для замены одного файла другим. Это бесценно в ситуации, когда у вас есть два файла в папке, и вы хотите удалить один, а другой переименовать в имя файла, который был удален.
Использование команд Windows- Выберите файл для удаления
- Файл> Переименовать
- CTRL + C
- ESC
- Файл> Удалить
- Выбрать другой файл
- Файл> Переименовать
- CTRL + V
- Возврат .
- Щелкните правой кнопкой мыши файл, который нужно удалить
- Копировать имя файла и удалить
- Щелкните правой кнопкой мыши другой файл
- Вставить имя файла
Все команды CopyFilenames одинаково хорошо работают как с папками, так и с файлами.
Функции CopyFilenames
- Копирует один или несколько имен файлов или папок в виде текста в буфер обмена Windows.
- Возможность добавления размера файла
- Возможность добавления даты / времени файла
- Возможность добавления полного пути к файлу
- Возможность удвоить обратную косую черту или использовать прямую косую черту, если добавлен полный путь
- Возможность заключать имена файлов в одинарные или двойные кавычки
- Возможность разделения нескольких имен файлов новой строкой, пробелом, табуляцией или запятой
- Команда для переименования файла с текстом из буфера обмена (Вставить имя файла)
- Команда для копирования имени файла и удаления файла за одну операцию
Редакции
CopyFilenames Pro — это альтернативная версия CopyFilenames с дополнительными функциями.
Сравните CopyFilenames и CopyFilenames Pro
Политика конфиденциальности | ExtraBit Software Ltd., Pennard Road, Суонси SA3 3JG, Великобритания | Copyright © 2021 ExtraBit Software Ltd., Все права защищены.
Как скопировать имена файлов в Excel из папки [Windows 10]
Как скопировать список имен файлов в Excel?
Если у вас в голове возникает тот же вопрос, значит, вы попали в нужное место.
Также читайте: Как включить текст в речь в Windows 10 .
Последние 2-3 года я начал делать резервные копии файлов своего компьютера на некоторые внешние жесткие диски. К предотвратить потерю данных .
И до сих пор я залил 4-5 жестких дисков данными.
Но действительно сложно запомнить, какие файлы на каком жестком диске находятся.
Итак, я начал экспортировать все имена файлов в файлы Excel и вести записи об этом.
Но это было чертовски много времени. А потом я узнал об этом хитром методе копирования имен файлов из папки в проводнике Windows.
Посмотрим, как это работает…
Копирование имен файлов в Excel из папки
Этот метод создания списка содержимого папки в виде текста очень помог мне сэкономить время. Будь они слишком длинными, короткими или одним словом, это работает со всеми.
Более того, вы также можете создать каталог файлов, присутствующих в папке .
Итак, приступим.
1. Откройте проводник Windows
Откройте проводник Windows и перейдите к своей любимой папке, для которой вы хотите создать список имен файлов в виде текста.
2. Скопируйте имена файлов в виде текста из папки
Теперь выберите только те файлы, для которых вы хотите скопировать имена файлов в Excel из папки.
Теперь, Нажмите клавишу Shift + щелкните правой кнопкой мыши на нем. Затем выберите Копировать как вариант пути .
И вы успешно скопировали файлы как текст, а также его местоположение с расширением файла.
3. Экспорт имен файлов в Excel
Теперь можно экспортировать имена файлов в файл Excel в Windows 10.Итак, откройте свой лист Excel и нажмите Ctrl + V , чтобы вставить его правильно.
И вы также можете скопировать имена файлов в Блокнот в виде текста , используя эту технику.
Вот и все…
Заключение
Вот как вы можете легко получить список всех файлов в папке и подпапках в Excel. И вы также можете использовать тот же метод для Windows 7/8 .
Посмотрите следующий пост о том, как копировать имена файлов в Excel с помощью cmd .
Не стесняйтесь поделиться своими мыслями, а также сообщите нам, знаете ли вы лучший способ Экспорт или копирование имен файлов в Excel из папки в Windows 10.
Если вам понравился этот пост, Не забудьте поделиться этот пост.
Как скопировать файлы из нескольких подпапок в одну папку?
При импорте фотографий с камеры или SD-карты через диалоговое окно «Автозапуск» с помощью приложения «Фотографии» в целевой папке создается множество подпапок (по месяцам и годам), что может быть не тем, что вам нужно.Вот пошаговое руководство, в котором объясняется, как рекурсивно переместить все файлы из нескольких подпапок в одну папку по вашему выбору.
Например, вот как он импортируется при использовании приложения «Фото».
Мобильные телефоны и фотоаппараты также могут хранить ваши фотографии во многих подпапках в папке DCIM
.
Например, в Apple iPhone ваши фотографии и видео хранятся в папке 100APPLE под DCIM
. Папка 100APPLE
содержит IMG_0001.JPG в IMG_0999.JPG. Если у вас есть другие изображения или видео, они хранятся в каталогах 101APPLE
, 102APPLE
и т. Д. Если вы используете iCloud для хранения фото и видео, вы также увидите папки, а именно: 100CLOUD
, 101CLOUD
и т. Д.
Копирование файлов из каждой подпапки в отдельную папку на жестком диске вручную может быть утомительной задачей, особенно если у вас много папок. Однако для этого не нужно копаться в каждой папке, так как есть несколько способов быстро скопировать или переместить файлы из всех подпапок в одну папку — i.е., сгладить структуру каталогов.
Перемещение или копирование файлов из подпапок в одну папку
Вы можете копировать или перемещать файлы из подпапок в одну папку, используя как минимум три различных встроенных способа в Windows. Эта процедура также известна как выравнивание структуры каталогов. Используйте один из трех методов, какой вам будет легче.
Метод 1. Использование командной строки
Сценарий: Давайте скопируем все файлы из папки и подпапок d: \ vacation snaps \ 2016
в папку d: \ all snaps
рекурсивно.
- Откройте окно командной строки.
- Выполните следующие команды одну за другой и нажимайте ENTER после каждой строки:
мкр "д: \ все снимки" cd / d "d: \ снимки из отпуска \ 2016" для / r% d в (*) скопируйте "% d" "d: \ all snaps \"
Это рекурсивно копирует все файлы из папки
d: \ vacation snaps \ 2016 \
в папкуd: \ all snaps \
. Чтобы переместить файлы, заменитекопию
напереместить
Если в месте назначения существует файл с таким же именем, вас спросят, хотите ли вы перезаписать файл или пропустить его.
Примечание. Всегда безопасно включать конечную обратную косую черту ( \
) после пути к целевой папке, как в приведенном выше примере. Поскольку без завершающей косой черты, если целевой путь отсутствует и вы запускаете команду, файлы в папке и подпапках копируются и объединяются в один файл с именем , и все файлы привязываются к диску
D: \ .
Метод 2. Использование библиотеки в Windows
Функция библиотек, впервые представленная в Windows 7, также доступна в последующих версиях, включая Windows 10.Библиотеки — это виртуальные контейнеры для пользовательского контента. Библиотека может содержать файлы и папки, хранящиеся на локальном компьютере или в удаленном хранилище. Библиотеки Windows похожи на «Сохраненный поиск» и поддерживаются полным поиском содержимого и расширенными метаданными.
С помощью библиотек можно агрегировать контент из нескольких мест хранения в единое унифицированное представление. Давайте воспользуемся функцией «Библиотеки» в Windows, чтобы упорядочить структуру каталогов.
Допустим, у нас есть такая структура папок:
D: \ ФОТО └───Камера ├───2018-01 ├───2018-02 ├───2018-04 ├───2018-05 └───2018-07
В каждой папке у нас есть несколько фотографий, импортированных с камеры.Чтобы упорядочить структуру каталогов камеры и объединить все изображения в одной папке, выполните следующие действия:
- Откройте самую верхнюю папку (например, фото ), структуру которой вы хотите сгладить.
- В меню «Файл» выберите «Параметры». Перейдите на вкладку «Просмотр»
- Включить Показать скрытые файлы, папки и диски
- Снимите флажок Скрыть защищенные файлы операционной системы (рекомендуется)
- Нажмите ОК.
- Щелкните правой кнопкой мыши родительский каталог (т.е.д., Camera в этом примере) и нажмите Включить в библиотеку → Создать новую библиотеку .
Новая библиотека создается с тем же именем, что и папка. - На левой панели проводника разверните Библиотеки и выберите только что созданную библиотеку.
- По умолчанию элементы в библиотеках упорядочены по Папкам . Чтобы получить сводное представление файлов в этой структуре каталогов (и скрыть папки), щелкните правой кнопкой мыши пустую область в библиотеке и выберите Упорядочить по → Имя
- Выберите вкладку Home .
- Щелкните Выберите все на ленте или нажмите Ctrl + A , чтобы выбрать все файлы в представлении библиотеки.
- Нажмите кнопку Переместить в или Копировать в в соответствии с вашими требованиями.
- Выберите папку назначения для копирования / перемещения файлов и щелкните Переместить (или Копировать )
Файлы в папке Camera и ее подпапках теперь скопированы / перемещены в место назначения; папки остаются. - Удалите библиотеку камеры, если она вам больше не нужна.
Далее мы увидим, как сделать то же самое с помощью поиска Windows в методе 3 ниже.
Метод 3. Использование Windows Search
Использование Windows Search — еще один простой способ упростить структуру каталогов, если вы не предпочитаете командную строку.
- Откройте родительскую папку (папка верхнего уровня), которая содержит множество подпапок.
- В меню «Файл» выберите «Параметры».Перейдите на вкладку «Просмотр»
- Включить Показать скрытые файлы, папки и диски
- Снимите флажок Скрыть защищенные файлы операционной системы (рекомендуется)
- Нажмите ОК.
- В поле поиска введите следующий поисковый запрос, как показано ниже:
*. * НЕ введите: "папка с файлами"
Примечание о поисковом запросе выше:
Мы используем оператор
НЕ
, чтобы предотвратить вывод в поиске Windows списка папок файловой системы ( директории, ) — поскольку мы собираемся копировать или перемещать только файлы, а не сами папки.- Поисковый запрос
*. * НЕ «папка с файлами»
работает только в проиндексированных местах . Если исходная папка не проиндексирована, используйте*. *
.
Да. Вы можете использовать
*. *
(который будет отображать папки в результатах поиска). В таком случае, когда вы дойдете до шага 8, вам нужно будет выбрать все файлы, исключая указанные папки. - Поисковый запрос
- Если по умолчанию включен параметр поиска Все подпапки , Windows Search начинает рекурсивный поиск всех совпадающих элементов во всех подпапках.В нем перечислены все совпадающие файлы, включая файлы с системными или скрытыми (или обоими) атрибутами.
- Дождитесь завершения поиска, а затем выберите все результаты поиска, нажав Ctrl + A .
- Выберите вкладку Home .
- На вкладке «Главная» нажмите кнопку « Копировать в ». Чтобы переместить файлы вместо копирования, нажмите кнопку « Переместить в ». Щелкните параметр Выбрать местоположение… в раскрывающемся меню Переместить в .
- В диалоговом окне «Перемещение элементов» выберите папку, в которую вы хотите переместить все файлы. Чтобы создать новую папку, нажмите кнопку «Создать новую папку» и присвойте папке соответствующее имя. Выбрав папку, нажмите Переместить . Это рекурсивно перемещает все файлы из нескольких подпапок в выбранную папку назначения.
Метод 4: Использование 7-Zip
7-Zip — это не только утилита сжатия, но и возможности управления файлами, которые могут быть полезны для других целей.7-Zip поддерживает функцию «Flat View», которая может помочь нам быстро найти файлы в нескольких подпапках или скопировать их в другое место.
- Запустите 7-Zip и просмотрите родительскую папку.
- В меню «Вид» включите «Плоский вид».
- Выберите все файлы без папок.
- Щелкните выборку правой кнопкой мыши и выберите Копировать в…
- Укажите путь к целевой папке и нажмите OK.
Вот и все. Выбранные файлы копируются в выбранную папку (сведены.)
Обратите внимание, что вы также можете включить режим «2 панели» через меню View 7-Zip и скопировать файлы, перетащив их в нужную папку на правой панели. Вы должны обязательно нажать клавишу Ctrl
во время перетаскивания. В противном случае файлы будут перемещены вместо в целевое расположение. Нажатие клавиши Ctrl
гарантирует, что операция перетаскивания будет « копировать . “ Сообщить об этом объявлении
Метод 4: Использование Total Commander
Если вы используете программное обеспечение файлового менеджера Total Commander, вы можете легко сгладить структуру каталогов.
- Запустите Total Commander и откройте папку, которую вы хотите выровнять.
- Нажмите Ctrl + B , чтобы изменить режим на вид ветки. Кроме того, вы можете включить Branch View (With Subdirs) через меню Commands . Branch View — это режим просмотра, в котором файлы из папки и подпапок (рекурсивно) перечисляются, а папки не отображаются.
- Выберите все файлы в списке и нажмите кнопку «Копировать» ( F5 ) внизу.Чтобы переместить файлы, нажмите кнопку «Переместить» ( F6 ).
- Выберите целевой каталог, снимите флажок Сохранить относительные пути и нажмите ОК .
Вот и все. Это копирует или перемещает все файлы в дереве исходных каталогов в целевую папку (сглаженную).
Убедиться, что каждый файл был успешно перемещен
Внимание! : Windows Search может не отображать каждый файл в результатах поиска в некоторых случаях либо из-за проблем с индексированием, либо из-за того, что для файла установлен атрибут «Временный».Перед очисткой этих папок разумно убедиться, что в исходном местоположении не осталось файлов.
СВЯЗАННЫЙ: Поиск Windows не находит файлы и папки Google Диска
Чтобы убедиться в этом, щелкните правой кнопкой мыши родительскую папку (или выберите все подпапки и щелкните правой кнопкой мыши) в исходном местоположении и выберите «Свойства». Если вы переместили элементы вместо копирования, на вкладке «Свойства» должно быть указано « 0 Files ».Это означает, что каждый файл был успешно перемещен в новое место.
Как вариант, вы можете проверить вкладку «Свойства» в пути назначения и убедиться, что количество файлов одинаково (всего файлов 33, как показано на изображении в шаге № 6 выше ).
После того, как вы убедитесь, что каждый файл был перемещен, папки в старом месте можно удалить.
Этот пост относится к фотографиям, импортированным с камеры. Но процедура перемещения или копирования всех файлов из нескольких подпапок в отдельную папку ( или «выравнивание структуры каталогов») одинакова для всех других ситуаций.
Одна небольшая просьба: Если вам понравился этот пост, поделитесь им?
Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:- Прикрепите!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Твитнуть!
пожаловаться на это объявление
Об авторе
Рамеш Сринивасан основал Winhelponline.com еще в 2005 году. Он увлечен технологиями Microsoft, и он был самым ценным профессионалом Microsoft (MVP) в течение 10 лет подряд с 2003 по 2012 год.
Microsoft → Windows → Как скопировать файлы из нескольких подпапок в одну папку?
Как распечатать содержимое папки и каталога в Windows
Вот несколько очень быстрых и простых инструкций о том, как создать текстовый файл со списком всех файлов и папок в определенном каталоге Windows. Это займет всего минуту.
Инструкции для Windows 10
- В проводнике Windows перейдите к папке, в которой вы хотите распечатать список содержимого.
- Нажмите Alt -> D на клавиатуре (адресная строка Windows Explorer теперь будет в фокусе).
- Введите cmd и нажмите Enter. (командная строка откроется по пути, который вы выбрали выше).
- Скопируйте и вставьте в командную строку следующее:
dir> files_and_folders.txt
- Нажмите Введите на клавиатуре.
В вашем каталоге теперь будет файл с именем files_and_folders.txt , в котором перечислены ваши папки и файлы.
Инструкции для Windows 2012 Server
- В проводнике Windows перейдите к папке, в которой вы хотите распечатать список содержимого.
- Нажмите Shift и поочередно щелкните мышью по папке в Windows Explorer
- Нажмите Открыть командное окно здесь .
- Скопируйте и вставьте в командную строку следующее:
dir> files_and_folders.txt
- Нажмите Введите на клавиатуре.
Согласно инструкциям Windows 10, теперь у вас есть файл с именем files_and_folders.txt , в котором перечислены ваши папки и файлы.
Нашли это полезным? Поделитесь, пожалуйста:
СвязанныеВ рубрике: General Technology
Посмотреть на Гэри в действии
Гэри часто добавляет обучающие видеоролики Mailchimp на свой канал YouTube.Подпишитесь, чтобы быть в курсе.
→ Подписаться ←
Как создать форму захвата лида с загрузкой файла.
Как настроить таргетинг на самые заинтересованные контакты Mailchimp.
Взаимодействие с читателями
Как переименовать несколько файлов в Windows 10
Как переименовать несколько файлов с помощью PowerShell
Кроме того, вы также можете использовать PowerShell для переименования одного или нескольких файлов. Несмотря на использование этого инструмента, есть много способов манипулировать файлами, инструкции в этом руководстве предназначены только для начала работы с наиболее распространенными сценариями.
Переименовать отдельный файл
Чтобы переименовать только один файл с помощью PowerShell, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы изменить имя отдельного файла, и нажмите Введите :
Переименовать элемент "ИМЯ-СТАРЫЙ ФАЙЛ.РАСШИРЕНИЕ "" НОВОЕ-ИМЯ-ФАЙЛ. РАСШИРЕНИЕ "
В команде обязательно укажите старое и новое имя и расширение файла. Кавычки требуются только в том случае, если в имени есть пробелы.
Например, переименовать файл в «пеший_поезд_2021_notes.txt»:
Переименовать-Item summer_trip_21_notes.txt walking_trip_2021_notes.txt
- Повторите шаг № 5 , чтобы продолжить переименование остальных оставшихся файлов.
После выполнения этих шагов команда изменит имя указанного файла.
Массовое переименование нескольких файлов
Для массового переименования нескольких файлов, когда структура имени не важна, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду для массового переименования нескольких файлов и нажмите Введите :
ls | % {Rename-Item $ _ -NewName ("NEW-FILE-NAME- {0}.РАСШИРЕНИЕ "-f $ nr ++)}
В команде замените «NEW-FILE-NAME» фактическим именем структуры, которую вы хотите использовать.
Например, эта команда переименовывает изображения с расширением «.jpg», используя ту же структуру именования («beach-trip-2021-»), и добавляет другой номер в конце имени:
ls | % {Rename-Item $ _ -NewName ("beach-trip-2021- {0} .jpg" -f $ nr ++)}
После того, как вы выполните эти шаги, все файлы с указанным форматом будут переименованы с использованием указанной вами структуры имен.
Обрезать несколько имен файлов
Чтобы сделать имена файлов короче или обрезать часть имен по числу символов «N» в Windows 10, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы переименовать файлы, используя более короткие имена, и нажмите Введите :
ls | Rename-Item -NewName {$ _.name.substring (0, $ _. BaseName.length-N) + $ _. Extension}
В команде внутри «$ _. BaseName.length-N» обновите значение «N», чтобы указать количество символов, которые вы хотите удалить.
Например, эта команда обрезает имя ваших файлов на восемь символов:
ls | Rename-Item -NewName {$ _. Name.substring (0, $ _. BaseName.length-8) + $ _. Extension}
После выполнения этих шагов вы получите более короткие имена файлов в зависимости от длины, указанной в команде.
Удалить часть имени из нескольких файлов
Чтобы удалить часть имени файла из нескольких файлов с помощью PowerShell, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы удалить часть имени файла, и нажмите Введите :
ls | Rename-Item -NewName {$ _.name -replace "OLD-FILE-NAME-PART", ""}
В команде замените «OLD-FILE-NAME-PART» фактической частью имени, которое вы хотите заменить.
Например, эта команда удаляет слово «поездка» из имени всех файлов в папке:
ls | Rename-Item -NewName {$ _. Name -replace "trip", ""}
После выполнения этих шагов команда удалит часть имени файла, указанного в команде.
Заменить часть имени из нескольких файлов
Чтобы переименовать ту же часть имени файла, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы заменить часть имени файла, и нажмите Введите :
ls | Rename-Item -NewName {$ _.name -replace "OLD-FILE-NAME-PART", "NEW-FILE-NAME-PART"}
В команде замените «OLD-FILE-NAME-PART» и «NEW-FILE-NAME-PART» на старую и новую части имени файла.
Например, эта команда заменяет слово «отпуск_» на «пеший_поезд_» в имени файла:
ls | Rename-Item -NewName {$ _. Name -replace "пляж -", "пеший_поезд_"}
После выполнения этих шагов команда изменит имена файлов с заменой, указанной в команде.
Удалить пробелы из нескольких файлов
Пробелы как часть имени файла иногда могут вызывать проблемы, даже больше, при использовании командной консоли. Если у вас есть файлы, в именах которых есть пробелы, вы можете использовать PowerShell для замены символа визуального разделителя, например тире или символа подчеркивания.
Чтобы удалить и заменить пробелы подчеркиванием в именах файлов, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы удалить пробелы из имени файла, и нажмите Введите :
ls | Rename-Item -NewName {$ _.Имя -заменить "", "СЕПАРАТОР"}
В команде не забудьте заменить «SEPARATOR» символом, который вы хотите использовать вместо пробела.
Например, эта команда заменяет пробелы подчеркиванием во всех файлах:
ls | Rename-Item -NewName {$ _. Name -replace "", "_"}
После выполнения этих шагов пробелы в именах файлов будут заменены указанным разделителем.
Изменить расширение файла
Чтобы изменить расширение файла для группы файлов с помощью PowerShell, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы изменить расширение файлов, и нажмите Введите :
ls | Rename-Item -NewName {[io.путь] :: ChangeExtension ($ _. name, ".NEW-EXTENSION")}
В команде замените «.NEW-EXTENSION» новым расширением файлов.
Например, эта команда изменяет любое расширение файла на «.doc»:
ls | Rename-Item -NewName {[io.path] :: ChangeExtension ($ _. Name, "doc")}
После выполнения этих шагов PowerShell изменит расширение на указанное вами.
Переименовать имена файлов с определенными расширениями
Приведенные выше инструкции переименуют каждый файл в папке.Однако, если вы хотите изменить имя определенного формата файла, такого как документы, изображения или видео, вы можете использовать параметр «-filter».
Чтобы изменить имена определенного формата файла с помощью команд PowerShell, выполните следующие действия:
- Открыть Начать .
- Найдите PowerShell и щелкните верхний результат, чтобы открыть приложение.
Введите следующий пример команды, чтобы перейти к папке с файлами, которые нужно переименовать, и нажмите Введите :
CD PATH \ TO \ FOLDER
В команде замените
PATH \ TO \ FOLDER
на фактический путь к местоположению.Например, эта команда перемещается по папке «файлы» внутри «Документов»:
cd Документы \ файлы
(Необязательно) Введите следующую команду, чтобы просмотреть список файлов в этом месте, и нажмите Введите :
лс
Введите следующую команду, чтобы переименовать файлы с определенным расширением, и нажмите Введите :
LS -фильтр *.РАСШИРЕНИЕ | % {Rename-Item $ _ -NewName ("NEW-FILE-NAME- {0} .EXTENSION" -f $ nr ++)}
В команде замените «NEW-FILE-NAME» и «EXTENSION» параметром, который вы хотите использовать.
Например, эта команда переименовывает только файлы с расширением «.jpg»:
ls -фильтр * .jpg | % {Rename-Item $ _ -NewName ("beach-trip- {0} .jpg" -f $ nr ++)}
После выполнения этих шагов PowerShell переименует файлы с определенным расширением, используя имя, указанное в команде.
.