bat批量移动文件到文件夹,已文件名中的某字创建文件夹名

如:文件名1:机架--LCL230801--8/23
文件名2:机架--LCL230802--8/24
文件名3:机架--LCL230803--8/24
文件名4:机架--LCL230804--8/25
等等
把文件1移动以文件名中的LCL230801来创建文件夹

将以下命令保存到和要处理的文件同一个文件夹下的t.bat中,然后运行t.bat


setlocal ENABLEDELAYEDEXPANSION
for %%f in (*.*) do (
set FN=%%f
md !FN:~4,9!
move %%f !FN:~4,9!
)

【以下回答由 GPT 生成】

我可以提供一个用于实现此功能的批处理脚本,但无法提供C语言示例代码。以下是一个示例批处理脚本:

@echo off
setlocal enabledelayedexpansion

set sourceDir=C:\path\to\source\folder
set targetDir=C:\path\to\target\folder

for %%F in ("%sourceDir%\机架--*") do (
    set filename=%%~nF
    set foldername=!filename:--=!
    set folderpath=%targetDir%\!foldername!
    if not exist "!folderpath!" mkdir "!folderpath!"
    move "%%F" "!folderpath!"
)

请根据实际情况修改sourceDirtargetDir变量为对应的文件夹路径。该脚本会遍历源文件夹中所有以"机架--"开头的文件,并根据文件名中的特定部分创建目标文件夹,然后将文件移动到对应的目标文件夹中。

遍历文件夹中的文件可以使用for命令,变量%%F会依次代表每个文件。通过在文件名中使用特定的分隔符(这里使用"--"),我们可以提取出目标文件夹的名称。然后使用mkdir命令创建目标文件夹,若目标文件夹不存在的话。最后使用move命令移动文件到目标文件夹中。

请注意,批处理脚本的实现方式可能略有不同,具体的实现方式可能因操作系统版本和环境而异。这只是一个基本的示例,可能需要根据实际需求进行修改和调整。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^