【发布时间】:2020-08-08 02:10:18
【问题描述】:
这个想法是将文件移动到文件夹中:
文件名:
1.pdf,2.pdf,3.pdf.....1000.pdf
结果必须是:
(1.pdf-100.pdf) To Folder 1
(101.pdf-200.pdf) To Folder 2
(201.pdf-300.pdf) To Folder 3
..
此代码有效,但它以 (0) 而不是 (1) 开头
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for %%a in (*.pdf) do (
echo %%~na|FINDSTR /R /C:"^[0-9]*$" >nul 2>nul&&(
set /a NumBas=%%~na/1000*1000
set /a NumHaut=^(%%~na/1000*1000^)+999
echo %%~a -^> !NumBas!-!NumHaut!
IF NOT EXIST "!NumBas!-!NumHaut!" MD "!NumBas!-!NumHaut!"
MOVE /Y "%%~a" "!NumBas!-!NumHaut!\%%~a" >nul
)
)
【问题讨论】:
-
您必须在进行数学运算时从文件编号中减去 1,然后在数学运算后再加 1。类似于
set /a numbas=^(%%~na-1^)/1000*1000然后set /a numhaut=^(^(%%~na-1^)/1000*1000^)+1000。
标签: windows batch-file batch-processing