我有大约 600 个文件,我想根据文件名开头的数字将它们移动到不同的子文件夹中。
例如
5--US-L.jpg -> subfolder /5/5--US-L.jpg
7--US-M.jpg -> subfolder /7/7--US-M.jpg
34--A3-RAW.jpg -> subfolder /34/34--A3-RAW.jpg
87--US-L.jpg -> subfolder /87/87--US-L.jpg
127--US-L.jpg -> subfolder /127/127--US-L.jpg
162--US-L.jpg -> subfolder /162/162--US-L.jpg
它的编号从1
到162
。尝试将之前的所有内容移动"--"
到指定的子文件夹中,但没有成功。
答案1
答案2
- 要从 1 个文件移动到 162 个文件:
在命令行中:
@for /l %l in (1 1 162)do 2>nul @md .\"%~l" & @move "%~l--*.jpg" .\"%~l"\ >nul
在批处理文件中:
@echo off
cd /d "d:\Target\Folder"
for /l %%L in (1 1 162
)do md .\"%%~L" & move "%%~L--*.jpg" .\"%%~L"\ >nul
- 如果存在文件,则将文件从 1 移动到 999:
在命令行中:
@for /l %l in (1 1 999)do @if exist "%~l--*.jpg" 2>nul @md .\"%~l"\ & @move "%~l--*.jpg" .\"%~l"\ >nul
在批处理文件中:
@echo off
cd /d "d:\Target\Folder"
for /l %%L in (1 1 999)do if exist "%%~L--*.jpg" 2>nul (
mkdir .\"%%~L"\ & move "%%~L--*.jpg" .\"%%~L"\ )>nul
使用拖放或预设路径到目标文件夹:
@echo off && setlocal
(cd/d "%~1" || cd/d "Z:\SU-2022\Q1699812"
) >nul 2>&1 || ( endlocal & goto :eof )
for /l %%L in (1 1 999)do if exist "%%~L--*.jpg" 2>nul (
mkdir .\"%%~L"\ & move "%%~L--*.jpg" .\"%%~L"\ ) >nul