对于 .BAT 文件,我有点新手。请,我需要一个批处理文件,它将根据本地文件夹中的文件名创建文件夹,然后将这些文件移动到相应的文件夹中。文件夹名称需要由文件名中分隔符之前的字符确定,在本例中为下划线。
例如,它将采用这些文件
june_jahdfjlkaluie2.xlsx
june_jahdfjlkaluie.xlsx
august_nnnvbcnkziery2.xlsx
august_nnnvbcnkziery.xlsx
december_bagjd_kasdgf.xlsx
december_byuueyiuyoi.xlsx
创建这些文件夹
june
august
december
并根据下划线前的字符将文件移动到这些文件夹中。
这是我到目前为止的代码
@echo off &setlocal
for /f "delims=_" %%i in ('dir /b /a-d *.xls') do (
set "file=%%~i"
setlocal enabledelayedexpansion
set "folder=!file!"
mkdir "!folder!" 2>nul
move "!file!" "!folder!" >nul
)
endlocal
echo Did it work?
Pause
批处理文件能够根据文件名创建文件夹。但是,当它尝试移动文件时,会产生一条错误消息,指出“该进程无法访问该文件,因为它正被另一个进程使用。” 我尝试了几个修复,包括创建一个单独的for
命令来移动文件,但似乎没有任何效果。
任何意见是极大的赞赏。谢谢你。