-2

У меня есть имена файлов, как,

  • DC_GEN_FUR_4_Point_Chair_type_2_10.txt
  • DC_GEN_FUR_4_Point_Chair_type_2_11.txt

  • L-Shaped_Single_Hole_(эллиптический)_10.txt

  • L-Shaped_Single_Hole_(эллиптический)_11.txt

аналогично имя папки должно быть

  • DC_GEN_FUR_4_Point_Chair_type_2
  • L-Shaped_Single_Hole_(эллиптический)

Скажите, пожалуйста, как я могу переместить файлы в одноименную папку, используя файл пакетного скрипта.

1 ответ1

2

Отредактировал код и установил переменную для пути после уточняющего комментария:

Чтобы удалить последние три символа из имени файла (без расширения) и использовать его для создания каталога, а затем переместить текущий файл внутрь, используйте это:

@echo off
setlocal enabledelayedexpansion
set folderpath=X:\Insert\Your\Path\Here
for %%f in (%folderpath%\*.*) do (
  set "foldername=%%~nf"
  md "!foldername:~0,-3!" >nul 2>&1
  move "%%f" "!foldername:~0,-3!"
) 

"foldername=%%~nf" возвращает имя файла;
"!foldername:~0,-3!" лишает последних трех персонажей от foldername


Старый ответ и код для справки:

Переместить файлы в каталог, который будет создан и будет иметь то же имя, что и файл, без расширения.

Если это так, то ваш пакетный скрипт будет выглядеть так:

@echo off
for %%f in (*) do (
  md "%%~nf"
  move "%%f" "%%~nf"
) >nul 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .