代码运行后还是移动和复制名称为未分配的文件夹里面的文件了。
时间: 2024-02-20 17:59:09 浏览: 15
非常抱歉,我的代码中有一处错误。在判断文件夹名称是否为未分配时,应该使用 `!filepath:~-12!` 而不是 `!filepath:~-13!`,因为文件夹名称为未分配时,其长度为 4,加上前面的反斜杠符号,共占用了 5 个字符的位置,因此应该使用 `-12` 进行截取。
以下是经过修正的代码:
```
@echo off
setlocal enabledelayedexpansion
set current_path=%CD%
set program_folder=%current_path%\程序模型
set process_folder=%current_path%\工艺规程
set record_folder=%current_path%\沟通记录
set target_folder=%current_path%\工艺文件
if not exist %program_folder% mkdir %program_folder%
if not exist %process_folder% mkdir %process_folder%
if not exist %record_folder% mkdir %record_folder%
if not exist %target_folder% mkdir %target_folder%
for /r %current_path% %%f in (*.prt *.cxp *.doc) do (
set "filepath=%%~dpf"
set "filename=%%~nxf"
set "extension=!filename:~-4!"
if not "!filepath:~-12!"=="\未分配" (
if "!extension!"==".prt" move "%%f" "%program_folder%"
if "!extension!"==".cxp" move "%%f" "%process_folder%"
if "!extension!"==".doc" move "%%f" "%record_folder%"
)
)
xcopy /e /i /y "%program_folder%" "%target_folder%\程序模型\"
xcopy /e /i /y "%process_folder%" "%target_folder%\工艺规程\"
xcopy /e /i /y "%record_folder%" "%target_folder%\沟通记录\"
rmdir /s /q %program_folder%
rmdir /s /q %process_folder%
rmdir /s /q %record_folder%
echo "文件移动并复制完成!"
```
请您将代码复制到文本编辑器中,保存为 `.bat` 文件后再次尝试运行。感谢您的反馈!