用于将文件移动到同名文件夹的批处理脚本

用于将文件移动到同名文件夹的批处理脚本

我有这样的文件名,

  • DC_GEN_FUR_4_Point_Chair_type_2_10.txt
  • DC_GEN_FUR_4_Point_Chair_type_2_11.txt

  • L 形单孔(椭圆形)10.txt

  • L 形单孔(椭圆形)11.txt

同样文件夹名称应该是

  • DC_GEN_FUR_4_Point_Chair_type_2
  • L 形单孔(椭圆形)

请告诉我如何使用批处理脚本文件将文件移动到同名文件夹中。

答案1

编辑代码并在澄清注释后为路径设置一个变量:

为了从文件名中删除最后三个字符(不包括扩展名)并将其用于创建目录,然后将当前文件移动到里面,请使用以下命令:

@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

答案2

@echo off
setlocal enabledelayedexpansion
set folderpath="C:\Desktop\original"
for %%f in (%folderpath%\*.*) do (
  set "foldername=%%~nf"
  md "!foldername:~0,-3!"
  move  "%%f"  "C:\!foldername:~0,-3!"
) 

我用了“C:\桌面\原始”文件夹中保存的所有文件必须移动到另一个文件夹。语句 md"!文件夹名称:~0,-3!"创建一个同名的文件夹,但删除最后三个字符。移动命令将文件夹移动到所需位置。

相关内容