这是我的文件夹结构,我想运行一个批处理文件来搜索所有父文件夹并将现有的 .dat 文件移动到子文件夹 x
我需要有人帮助我 :) 非常感谢
- NETWORK FOLDER ( WHERE I WANT THE BACTCHFILE TO BE LAUNCHED )
- PARENT FOLDER 1
-subfolder 1
-subfolder 2
-subfolder 3
-subfolder x
files_name.dat
- PARENT FOLDER 2
-subfolder 1
-subfolder 2
-subfolder 3
-subfolder x
files_name.dat
- PARENT FOLDER 3
-subfolder 1
-subfolder 2
-subfolder 3
-subfolder x
files_name.dat
我现在还是编码新手,只有相当基础的代码。只有将 .bat 放在父文件夹中时,此代码才有效。我尝试在网络文件夹中运行它,但不起作用。
@echo off
SetLocal EnableDelayedExpansion
for /F "delims=" %%a in ('dir /b *.dat') do (
move /y "%%a" subfolder x\
)
答案1
可能是这样的。它将 dat 文件复制到名为 DatFiles 的文件夹,并重命名子文件夹中可能重复的名称。
@echo off
chcp 1252> Nul
set Source=\\Lenovo\Test\Source
set Destination=\\Lenovo\Test\Source\DatFiles
set Type=.dat
If /i not exist "%Destination%" md "%Destination%"
for /f %%a in ('dir /b /s "%Source%\*%Type%" ^| find /i /v "%Destination%\"') do (
if /i exist "%Destination%\%%~nxa" (
set "File=%%~na"
set "Extension=%%~xa"
set "FullPath=%%a"
call :Rename
)
if /i not exist "%Destination%\%%~nxa" move "%%a" "%Destination%"
)
exit
:Rename
for /l %%b in (1,1,100) do if /i not exist "%Destination%\%File%(%%b)%Extension%" move "%FullPath%" "%Destination%\%File%(%%b)%Extension%" & goto :EOF
goto :EOF