Показать полную графическую версию : [решено] Переместить каждый файл в отдельную папку
Привет всем! Помогите пожалуйста решить проблему:
Есть куча mp3 файлов.
Нужно взять и каждый переместить в отдельную папку. Папку нужно создать исходя из имени файла.
Пример:
Файлы в папке
test1.mp3
test2.mp3
test3.mp3
Скрипт моздает папки
test1
test2
test3
перемещая в них по одному соответствующие файлы.
Спасибо!
В PowerShell
dir *.mp3 | foreach {
md $_.BaseName
move $_.FullName .\$($_.BaseName)
}
Спасибо =) НО
Папки создались, но файлы не переместились
Вывод команды (тест на 10 файлов):
Каталог: C:\aa\uwp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 12.03.2019 17:21 ump_podcast1
d---- 12.03.2019 17:21 ump_podcast10
d---- 12.03.2019 17:21 ump_podcast2
d---- 12.03.2019 17:21 ump_podcast3
d---- 12.03.2019 17:21 ump_podcast4
d---- 12.03.2019 17:21 ump_podcast5
d---- 12.03.2019 17:21 ump_podcast6
d---- 12.03.2019 17:21 ump_podcast7
d---- 12.03.2019 17:21 ump_podcast8
d---- 12.03.2019 17:21 ump_podcast9
На всякий случай последовательность моих действий:
1. Сохранил ваш код в текстовый файл sc.ps1
2. Обратился к файлу через консоль PowerShell
Поправил код, там съело ._ изначально
Можно просто в консоль вставлять, только сначала перейти в папку с cd.
megaloman
12-03-2019, 16:40
@Echo Off
FOR %%f IN (*.mp3) DO Md "%%~nf" &>nul Move "%%f" "%%~nf\" &<Nul Set /P ~=>"%%~nf\%%~nf.txt"
Vadikan, спасибо, а можно добавить одно действие?)
Чтобы в созданной папке создавался txt-файл пустой с именем этой папки.
Подозреваю, что где-то между md и move надо вставить new-item, но хотел уточнить
надо вставить new-item »
Да, и у вас уже есть все необходимое. $_.BaseName - имя файла без расширения.
dir *.mp3 | foreach {
md $_.BaseName
move $_.FullName .\$($_.BaseName)
ni -Path .\$($_.BaseName) -Name "$($_.BaseName).txt" -ItemType File
}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.