Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 将文件分五批移动到文件夹中?_Windows_Batch File - Fatal编程技术网

Windows 将文件分五批移动到文件夹中?

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

假设我有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
    • 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