CMD/BAT - [решено] Создание папок по имени файлов

Ответить
Аватара пользователя
Prizvel

CMD/BAT - [решено] Создание папок по имени файлов

Сообщение Prizvel »

Всем привет.



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

Нужно в итоге кучу папок с таким именем, и что бы в каждой лежал свой room.dat
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - [решено] Создание папок по имени файлов

Сообщение DJ Mogarych »

Powershell:



Код:

Код: Выделить всё

$folder = "D:\temp\folder"
cd "$folder"
dir -file |% {
mkdir "$($_.basename)"
mv "$($_.fullname)" "$($_.basename)\room.dat"
}
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Создание папок по имени файлов

Сообщение megaloman »

Код:

Код: Выделить всё

@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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»