Компьютерный форум 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=351021)

Prizvel 10-04-2022 23:43 2983051

Создание папок по имени файлов
 
Всем привет.

У меня в одной папке лежат файлы с названиями 0001_room.dat и тд. Есть ли способ через командную строку создать для каждого файла папку с таким же именем, а файл переименовать в room.dat и положить внутрь этой папки?
Нужно в итоге кучу папок с таким именем, и что бы в каждой лежал свой room.dat

DJ Mogarych 11-04-2022 09:19 2983062

Powershell:
Код:

$folder = "D:\temp\folder"

cd "$folder"
dir -file |% {
mkdir "$($_.basename)"
mv "$($_.fullname)" "$($_.basename)\room.dat"
}


megaloman 11-04-2022 09:57 2983063

Код:

@Echo Off
        Set "BoxIn=Z:\Box_In"
        Set "Mask=????_room.dat"

        For /f "usebackq tokens=1,* delims=_" %%i In (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) Do (
                If Not "%%j"=="" (2>nul md "%BoxIn%\%%i" &>nul Move "%BoxIn%\%%i_%%j" "%BoxIn%\%%i\%%j")
        )
Exit /B

Если батник в той же папке, что и файлы, то:
Код:

@Echo Off
        Set "Mask=????_room.dat"

        For /f "usebackq tokens=1,* delims=_" %%i In (`2^>nul Dir /B /A:-D "%Mask%"`) Do (
                If Not "%%j"=="" (2>nul md "%%i" &>nul Move "%%i_%%j" "%%i\%%j")
        )
Exit /B



Время: 23:48.

Время: 23:48.
© OSzone.net 2001-