全球主机交流论坛

标题: 脚本和编程大佬,请了。。。 [打印本页]

作者: 金刚不坏    时间: 2022-10-31 11:53
标题: 脚本和编程大佬,请了。。。
还是差不多上次的问题,原来我按照大佬的做法,批处理一个一个的执行拷贝命令,完全成功了,但是文件实在太多了,导入到excel再一行一行的编辑,也还是太慢,还是想着有没有更简单的方法,于是在百度里找了一些代码,能拷贝,但是不能按照要求到了30个文件就跳出执行第二段。代码如下:
@echo off
set /a i=0
set /a c=30
:loop
setlocal enabledelayedexpansion
for /f "delims=" %%f in ('dir *jpg /a-d /b /s') do (
set i=i+1
move %%f A
if %i% equ %c% (
break
goto :B

else (
goto :loop
)
)


在这里面A、B、C都是目录,目的是要找出来的jpg文件每循环移动30次就跳到下一段,以此类推。现在执行的结果是根本就不跳转,直接就是所有文件移动到了目录A,想了半天也没想出来问题出在哪里,我也试着把move命令做成变量来判断执行次数,也不成功。大佬们出手吧!
作者: ecs    时间: 2022-10-31 11:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: Far    时间: 2022-10-31 11:57
求求你 花一天时间去看看python幼儿园入门教程吧,就完全够用了。
作者: 金刚不坏    时间: 2022-10-31 12:01
Far 发表于 2022-10-31 11:57
求求你 花一天时间去看看python幼儿园入门教程吧,就完全够用了。

早看过了,装python运行环境以及相关的软件太麻烦,而且以我数学每次考试十多分的成绩,现在学很难有进步了。
作者: hyf3513    时间: 2022-10-31 12:03
看不太清楚问题的描述,但我知道这个的话一包华子的钱能够解决
作者: Far    时间: 2022-10-31 12:06
金刚不坏 发表于 2022-10-31 12:01
早看过了,装python运行环境以及相关的软件太麻烦,而且以我数学每次考试十多分的成绩,现在学很难有进步 ...


心疼,这是什么样的教育出的结果,喜欢自我设限!
如果真的连安装都费劲,无话可说。
我口诉一下安装流程。
python.org 下载windows版本

下载好以运行安装器,点击运行,出现安装界面,点击第一个英文,左最下方点击添加到系统变量,然后下一步就可以了。

打开cmd命令输入 python 出现python版本信息 恭喜你python安装成功。



作者: dragonfsky    时间: 2022-10-31 12:24
说需求 我看能不能搞
作者: 金刚不坏    时间: 2022-10-31 12:29
Far 发表于 2022-10-31 12:06
心疼,这是什么样的教育出的结果,喜欢自我设限!
如果真的连安装都费劲,无话可说。
我口诉一下安装流程 ...

谢谢你的鼓励,马上去下载一个,装上看看能不能学会。
作者: 金刚不坏    时间: 2022-10-31 12:32
dragonfsky 发表于 2022-10-31 12:24
说需求 我看能不能搞

用windows批处理,一个目录下有几万个文件,现在要求每一千个文件归档到一个文件夹。
作者: acm    时间: 2022-10-31 12:33
入门都挺简单的,大不了现学现用
作者: allnetstore    时间: 2022-10-31 14:35
  1. set i=i+1
复制代码

改成
  1. set /a i=i+1
复制代码


回帖让你用python的人,python也好不到哪里去
作者: skyindreams    时间: 2022-10-31 14:43
没起到作用
作者: 金刚不坏    时间: 2022-10-31 14:47
allnetstore 发表于 2022-10-31 14:35
改成

谢谢大佬,试过了的,一开始就是这样的,好像没有任何计数作用一样。
作者: 逸笙    时间: 2022-10-31 14:51
金刚不坏 发表于 2022-10-31 14:47
谢谢大佬,试过了的,一开始就是这样的,好像没有任何计数作用一样。

不要“好像”,代码出点问题很正常,慢慢分析就是了。你加个echo i看看每次的i是多少就可以了。
其它的也是,慢慢分析。
作者: 金刚不坏    时间: 2022-10-31 14:54
逸笙 发表于 2022-10-31 14:51
不要“好像”,代码出点问题很正常,慢慢分析就是了。你加个echo i看看每次的i是多少就可以了。
其它的也 ...

谢谢指教,一直想找到单步调试的方法,百度半天找不到,大佬一句话解决了。谢谢!
作者: dragonfsky    时间: 2022-10-31 15:56
金刚不坏 发表于 2022-10-31 12:32
用windows批处理,一个目录下有几万个文件,现在要求每一千个文件归档到一个文件夹。 ...

一定要批处理?我用java给你实现不也一样
作者: skyindreams    时间: 2022-10-31 17:34
本帖最后由 skyindreams 于 2022-10-31 17:36 编辑


作者: 金刚不坏    时间: 2022-10-31 17:36
dragonfsky 发表于 2022-10-31 15:56
一定要批处理?我用java给你实现不也一样

小学生只会一点批处理,还只是略懂,java对我如天书。
作者: 金刚不坏    时间: 2022-10-31 17:38
逸笙 发表于 2022-10-31 14:51
不要“好像”,代码出点问题很正常,慢慢分析就是了。你加个echo i看看每次的i是多少就可以了。
其它的也 ...

单步执行了一下,果然是这代码有问题,i始终是0,并没有累加。还在琢磨,没找到原因。
作者: yep    时间: 2022-10-31 20:35
本帖最后由 yep 于 2022-10-31 20:36 编辑

  1. @echo off
  2. setlocal enabledelayedexpansion

  3. set c=30
  4. set i=0
  5. rem folder从0开始命名,每个文件夹存放c个文件后创建下一个文件夹
  6. set folder=0
  7. mkdir !folder!

  8. for /f "delims=" %%f in ('dir *jpg /a-d /b /s') do (
  9.     set /a i=i+1
  10.     move %%f !folder!
  11.     if !i! equ %c% (
  12.         set /a i=0
  13.         set /a folder=folder+1
  14.         mkdir !folder!
  15.     )
  16. )
复制代码

作者: 金刚不坏    时间: 2022-11-1 01:51
yep 发表于 2022-10-31 20:35

哇,简直是太完美了,我建立的目录是字母的,所以每个字母我写了一段,不断重复,你这个太好了,而且还相当简洁!膜拜中!万分感谢!




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4