[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 14# 慕夜蓝化


    移动到厂家的文件为1-1.JPG,2-2.JPG,3-3.JPG,4-1.JPG,5-1.JPG,其他的.JPG照片都移动到型号里面

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%i in (g:\h\*) do (
  3.     md "%%~fsi\厂家" "%%~fsi\型号" 2>nul
  4.     pushd "%%~fsi"
  5.     for %%a in (*.*) do (
  6.         set "str=%%a"&set "n=!str:~,1!"
  7.         if !n! leq 5 (
  8.             move "%%a" 厂家
  9.         ) else (
  10.             move "%%a" 型号
  11.         )      
  12.     )
  13.     popd
  14. )
  15. pause
复制代码
这样应该可以了。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

回复 15# 慕夜蓝化


    对啊!而且有的照片不是1-1.JPG的样式,而是1.JPG或是没有命名直接是.JPG,所以还得麻烦您帮我把这个条件添加进去!再次感谢~

TOP

回复 18# SandraRusso

你试下17楼的行不行,我这里测试是通过的。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

回复 19# 慕夜蓝化

刚刚试了一下您给的代码,发现20-1,20-2等首位数字大于5的照片也被移动到厂家中去了,不过只有6-1照片在型号中,这个有点奇怪!

TOP

回复 20# SandraRusso

这不奇怪,那不是首位数字了,那是前两位数字,我知道该怎么办了,你等下。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%i in (g:\h\*) do (
  3.     md "%%~fsi\厂家" "%%~fsi\型号" 2>nul
  4.     pushd "%%~fsi"
  5.     for %%a in (*.*) do (
  6.         for /f "delims=-" %%b in ("%%~nxa") do (
  7.         if %%b leq 5 (
  8.             move "%%a" 厂家
  9.         ) else (
  10.             move "%%a" 型号
  11.         ))      
  12.     )
  13.     popd
  14. )
  15. pause
复制代码
你试下。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

回复 9# pcl_test


    您看要是图片有命名成1.JPG的也要移动到厂家中去,怎么修改代码呢?

TOP

回复 15# SandraRusso
  1. @echo off
  2. set "filesdir=G:\H\"
  3. for /f %%i in ('dir /ad /b "%filesdir%"') do (
  4. pushd "%filesdir%%%i"
  5. md "厂家\" "型号\"
  6. for /l %%a in (1,1,5) do (
  7. move %%a-*.* "厂家\"
  8. move %%a.* "厂家\"
  9. )
  10. move *.* "型号\"
  11. popd
  12. )
  13. pause
复制代码

TOP

回复 22# 慕夜蓝化


    哈哈!完美解决了~太感谢您了!我刚刚接触这个,是个菜鸟!还请您多多指教呀!不知道您可不可以帮我把您这段代码每句的含义备注解释下?另外希望能加下您的QQ,以后好好向您学习!

TOP

回复 16# pcl_test

哈哈!真是高手呀!长见识了,另外还想问您下,如果要建立3个文件夹,然后把首位数字为1到5、6-10、11-之后的图片分别移动到3个文件夹内,您能在给做下指导吗?

TOP

回复 17# SandraRusso
  1. @echo off
  2. set "filesdir=G:\H\"
  3. for /f %%i in ('dir /ad /b "%filesdir%"') do (
  4. pushd "%filesdir%%%i"
  5. md "1-5\" "6-10\" "其他\" 2>nul
  6. for /l %%a in (1,1,5) do (
  7. move %%a-*.* "1-5\"
  8. move %%a.* "1-5\"
  9. )
  10. for /l %%a in (6,1,10) do (
  11. move %%a-*.* "6-10\"
  12. move %%a.* "6-10\"
  13. )
  14. move *.* "其他\"
  15. popd
  16. )
  17. pause
复制代码

TOP

回复 18# pcl_test


    厉害呀!以后有类似的我就知道怎么变换的运用了! 这个2>nul语句的含义是啥意思啊?对了如果问题解决了,我应该怎么在主题上标注已解决呢?我刚找了半天没找到,还请您见谅!

TOP

回复 19# SandraRusso

2>nul表示如果有错误不提示

你点击你问题1楼的“编辑”,直接在标题最前面输入[已解决],再点击“编辑帖子”即可

TOP

回复 22# 慕夜蓝化


    真是高手呀!长见识了,另外还想问您下,如果要建立3个文件夹,然后把首位数字为1到5、6-10、11-之后的图片分别移动到3个文件夹内,您能在给做下指导吗?

TOP

返回列表