Windows 将文件分五批移动到文件夹中?
假设我有50个按名称排序的文件。。我想创建一个批处理脚本,该脚本给出以下结果:Windows 将文件分五批移动到文件夹中?,windows,batch-file,Windows,Batch File,假设我有50个按名称排序的文件。。我想创建一个批处理脚本,该脚本给出以下结果: Files 1 through 5 -> 01-05 Files 6 through 10 -> 06-10 等等..如何创建批处理脚本来实现这一点? 请注意,01-05和06-10是目录名 编辑:详细信息 考虑这个: 源目录: 101.mp4 102.mp4 103.mp4 104.mp4 等等 我想要一个这样的目录结构: 目标目录: 101-105: 101.mp4 102.mp4 10
Files 1 through 5 -> 01-05
Files 6 through 10 -> 06-10
等等..如何创建批处理脚本来实现这一点?
请注意,01-05和06-10是目录名
编辑:详细信息
考虑这个:
- 源目录:
- 101.mp4
- 102.mp4
- 103.mp4
- 104.mp4
- 目标目录:
- 101-105:
- 101.mp4
- 102.mp4
- 103.mp4
- 104.mp4
- 105.mp4
- 106-110:
- 106.mp4
- 107.mp4
- 108.mp4
- 109.mp4
- 110.mp4
以此类推。这就是您想要的,更改
文件计数
以更改每个子目录中的文件编号:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set fileCount=5
set filesNow=0
set nameStart=000
set nameEnd=000
FOR /F "usebackq delims=" %%i IN (`dir /b /O:N *.mp4`) do (
set /a filesNow+=1
set /a tmpValue=filesNow %% fileCount
::echo !filesNow!
::echo !fileCount!
::echo %%i
::echo !tmpValue!
if "!tmpValue!"=="1" (
set "nameStart=%%~ni"
mkdir _tmpDir_
)
move %%~nxi _tmpDir_\
if "!tmpValue!"=="0" (
rename _tmpDir_ !nameStart!-%%~ni
)
set "nameEnd=%%~ni"
)
if exist _tmpDir_ rename _tmpDir_ %nameStart%-%nameEnd%
您需要将它们放入bat/cmd文件中才能工作。filesNow
用于文件编号计数。基本上就是创建一个tmp文件夹并在其中移动文件,
当文件夹中的文件达到该数字时,请更改文件夹的名称。
我没有删除几个测试
echo
命令,只是使用:
注释掉它们,您可以删除::再次测试它们 /O:N
是目录的一种默认选项;不用用了@谢谢你的指点。不过,我想保留它也没什么坏处,不妨提醒其他人以后更改/使用它:)@double beep,我不会将/ON
或/O:N
描述为一种默认选项,但是更多的NTFS
更可能是默认的格式选项。@double beep作为默认值可以通过环境变量dircmd
(此处dircmd=/ogn
)临时/永久地设置。绝对没有什么可以反对显式使用/O:N