File 批处理:基于第一个零件文件名创建文件夹;将文件复制到该文件夹中
我有一个文件夹,里面有数百万张小图片。我想把第一个12.288文件放在一个文件夹中,然后把下一个12.288文件放在另一个文件夹中,依此类推。。。始终根据文件名的第一部分。这些文件的名称如下所示:File 批处理:基于第一个零件文件名创建文件夹;将文件复制到该文件夹中,file,batch-file,copy,directory,File,Batch File,Copy,Directory,我有一个文件夹,里面有数百万张小图片。我想把第一个12.288文件放在一个文件夹中,然后把下一个12.288文件放在另一个文件夹中,依此类推。。。始终根据文件名的第一部分。这些文件的名称如下所示: GRID_00000_01 GRID_00000_02 直到 然后是下一组文件: GRID_00001_01 直到 这种情况一直持续到电网12288 我希望批处理为以该文件名开头的所有文件创建一个文件夹GRID\u00000,然后将所有文件放入其中。然后它必须对下一组文件执行相同的操作,以此类推
GRID_00000_01
GRID_00000_02
直到
然后是下一组文件:
GRID_00001_01
直到
这种情况一直持续到电网12288
我希望批处理为以该文件名开头的所有文件创建一个文件夹GRID\u00000
,然后将所有文件放入其中。然后它必须对下一组文件执行相同的操作,以此类推。我不知道我是否说清楚了,因为我真的不太懂编程
我的系统是windows 8.1
源目录称为:
D:\photoshop\test\grid_04\droplet\Bilder
D:\photoshop\test\grid_04\droplet\geordnet
目标目录称为:
D:\photoshop\test\grid_04\droplet\Bilder
D:\photoshop\test\grid_04\droplet\geordnet
我在互联网上发现:
@echo off
for /f %%a in ('dir /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :func "%%~a"
)
goto :EOF
:func
set file=%~1
set dir=%file:~0,10%
md "T%dir%" 2>nul
move "%file%" "T%dir%"
goto :EOF
它没有指定目标目录。但实际上这并不是必须的。如果在原始文件夹中创建文件夹也很好。@ECHO OFF
SETLOCAL
设置“sourcedir=U:\sourcedir”
设置“destdir=U:\destdir”
对于/f“tokens=1,2,*delims=%%a IN('dir/b/a-d”%sourcedir%\grid'.*.*.*')DO(
回显(MD“%destdir%%\%%a\%%b”2>nul
回显(移动“%sourcedir%\%%a\%%b\%%c”“%destdir%\%%a\%%b\%%a\%%b\%%c”
)
后藤:EOF
您需要更改sourcedir
和destdir
的设置以适应您的环境
所需的MD命令仅用于测试目的。ECHO
ed。验证命令正确后,将ECHO(MD
更改为MD
以实际创建目录。2>nul
抑制错误消息(例如,当目录已经存在时)
所需的移动命令仅用于测试。
ECHO
在验证命令正确后,更改ECHO(MOVE
至MOVE
以实际移动文件。追加>nul
以抑制报告消息(例如1个文件已移动
)这更像是一个photoshop问题,而不是一个编程问题。我在photoshop中没有找到解决方案。这就是为什么我后来想整理文件的原因。@sjoy抱歉,这篇博文是写给Casey Rule的。@sjoy我在互联网上找到了一些东西,首先我认为这是解决方案(我把它贴在了我原来的博文中)。我用一个文件较少的文件夹试过了,效果不错,但用原来的文件夹就不行了。您好。您不想在问题中发布答案中的代码。只需像以前一样在答案末尾留下注释。您可以“回滚”您在问题中添加我的代码的编辑。哦,但我确实看到了问题。在新代码中,请确保同时更改顶部的dest和src路径。是的,当然可以移动,叹气。恐怕我不得不向您借用。