Войти

Показать полную графическую версию : [решено] Переместить каждый файл в отдельную папку


zzzt
12-03-2019, 09:30
Привет всем! Помогите пожалуйста решить проблему:
Есть куча mp3 файлов.
Нужно взять и каждый переместить в отдельную папку. Папку нужно создать исходя из имени файла.

Пример:
Файлы в папке
test1.mp3
test2.mp3
test3.mp3

Скрипт моздает папки
test1
test2
test3
перемещая в них по одному соответствующие файлы.

Спасибо!

Vadikan
12-03-2019, 14:32
В PowerShell
dir *.mp3 | foreach {
md $_.BaseName
move $_.FullName .\$($_.BaseName)
}

zzzt
12-03-2019, 15:24
Спасибо =) НО
Папки создались, но файлы не переместились

Вывод команды (тест на 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

Vadikan
12-03-2019, 16:18
Поправил код, там съело ._ изначально

Можно просто в консоль вставлять, только сначала перейти в папку с 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"

zzzt
13-03-2019, 08:08
Vadikan, спасибо, а можно добавить одно действие?)
Чтобы в созданной папке создавался txt-файл пустой с именем этой папки.

Подозреваю, что где-то между md и move надо вставить new-item, но хотел уточнить

Vadikan
13-03-2019, 10:23
надо вставить new-item »
Да, и у вас уже есть все необходимое. $_.BaseName - имя файла без расширения.

dir *.mp3 | foreach {
md $_.BaseName
move $_.FullName .\$($_.BaseName)
ni -Path .\$($_.BaseName) -Name "$($_.BaseName).txt" -ItemType File
}




© OSzone.net 2001-2012