Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file 批处理文件-Windows 10。如何根据文件名称的中间部分将文件移动到以该部分命名的文件夹中_Batch File_Batch Processing - Fatal编程技术网

Batch file 批处理文件-Windows 10。如何根据文件名称的中间部分将文件移动到以该部分命名的文件夹中

Batch file 批处理文件-Windows 10。如何根据文件名称的中间部分将文件移动到以该部分命名的文件夹中,batch-file,batch-processing,Batch File,Batch Processing,你能帮我完成这个我正在努力完成的简单任务吗?下面是一个场景 我们有一个文件夹,我们称之为Folder1,有大量的文件以六对数字命名,如下所示 78 28 96 32 94 93.jpg 526730296340.jpg 17 33 07 11 08 00.jpg 163433054153.jpg 在这个文件旁边,我们有一个名为00到99的文件夹。在每个文件夹中,我们有另一组同名文件夹。 因此,我们需要做的是根据文件名中的第4对和第5对数字将这些文件移动到现有文件夹中,如下所示 78 28 96

你能帮我完成这个我正在努力完成的简单任务吗?下面是一个场景

我们有一个文件夹,我们称之为Folder1,有大量的文件以六对数字命名,如下所示

78 28 96 32 94 93.jpg 526730296340.jpg 17 33 07 11 08 00.jpg 163433054153.jpg

在这个文件旁边,我们有一个名为00到99的文件夹。在每个文件夹中,我们有另一组同名文件夹。 因此,我们需要做的是根据文件名中的第4对和第5对数字将这些文件移动到现有文件夹中,如下所示

78 28 96 32 94 93.jpg应移动到Folder1\32\94 52 67 30 29 63 40.jpg应移动到Folder1\29\63 17 33 07 11 08 00.jpg应移至文件夹1\11\08 等等

我们如何使用Folder1中的批处理文件来实现这一点? 文件夹已经存在,我们只需要移动文件。 谢谢

@ECHO OFF SETLOCAL 设置sourcedir=U:\sourcedir 对于/f delims=%%a IN 'dir/b/a-d%sourcedir%\??。jpg' 做 对于/f标记=4,5delims=%%p IN%%~na DO 回显移动%sourcedir%\%%a%sourcedir%\%%p\%%q\ 后藤:EOF 您需要更改sourcedir的设置以适应您的环境

仅对与提供的掩码匹配的文件执行目录扫描,然后使用找到的每个文件名的名称部分,选择标记4和5到%%p和%%q

所需的移动命令仅用于测试目的。验证命令是否正确后,将ECHO MOVE更改为MOVE以实际移动文件。Append>nul以抑制报告消息,例如1文件已移动