Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переместить каждый файл в отдельную папку (http://forum.oszone.net/showthread.php?t=339643)

zzzt 12-03-2019 09:30 2862659

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

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

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

Спасибо!

Vadikan 12-03-2019 14:32 2862727

В PowerShell
Код:

dir *.mp3 | foreach {
md $_.BaseName
move $_.FullName .\$($_.BaseName)
}


zzzt 12-03-2019 15:24 2862729

Спасибо =) НО
Папки создались, но файлы не переместились

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

Поправил код, там съело ._ изначально

Можно просто в консоль вставлять, только сначала перейти в папку с cd.

megaloman 12-03-2019 16:40 2862743

Код:

@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 2862849

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

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

Vadikan 13-03-2019 10:23 2862870

Цитата:

Цитата zzzt
надо вставить new-item »

Да, и у вас уже есть все необходимое. $_.BaseName - имя файла без расширения.

Код:

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



Время: 04:27.

Время: 04:27.
© OSzone.net 2001-