标题: [问题求助] (已解决)求助VBS关于特定条件复制的小程序 [打印本页]
作者: arjunayuki 时间: 2021-6-3 11:05 标题: (已解决)求助VBS关于特定条件复制的小程序
本帖最后由 arjunayuki 于 2021-6-8 11:01 编辑
想要求助一个复制小程序,我这个程序有点点复杂,不知道VBS能够做到吗,希望各位大佬指教 。我有一个文件夹A,位置是C:\NEW\DATA\A,里面有无数个文件夹1,2,3等,文件夹1,2,3这些里面又有很多文件夹,这些文件夹名字全是18位数字和英文字母组成, 我想设置一个复制要求,就是把那18位英文数字的文件夹做一个筛选,筛选条件有两个,第一个字母必须是B开头的,然后第16个数字选最大的(第16个数字可能有4,3,2,0等,这时候选数字最大那个文件夹),然后把筛选好的18位英文数字文件夹包含文件夹里面的文件,一起复制到C:\NEW\TEST这个路径里面。不知道这个筛选要求能否实现,是要求连18位数字的文件夹一起复制到新的路径里面去,求各位大佬指教,多谢多谢,如果可以,能否提供代码,小妹跪谢!!!!!
作者: newswan 时间: 2021-6-3 13:47
本帖最后由 newswan 于 2021-6-7 16:56 编辑
- @echo off
- setlocal enableDelayedExpansion
-
- set sour=C:\NEW\DATA\A
- set dest=C:\NEW\TEST
-
- pushd %sour%
- for /f "usebackq delims=" %%a in (` dir /b /ad `) do (
- call :f %%a
- )
- popd
- goto :END
-
- :f
- pushd %1
- for /l %%a in (9,-1,0) do (
- for /f "usebackq delims=" %%a in (` dir /b /ad B??????????????%%a* 2^>nul`) do (
- echo "%%~fa"
- goto :break
- )
- )
- :break
- popd
- goto :eof
-
- :END
复制代码
屏幕输出,文件正确的话,第18行修改为复制代码
作者: arjunayuki 时间: 2021-6-3 14:42
回复 2# newswan
大神你好,多谢你能够写出这个代码,但是我怎么运行都说找不到资料,想问下怎么处理呢,多谢多谢
作者: arjunayuki 时间: 2021-6-3 14:59
本帖最后由 arjunayuki 于 2021-6-3 15:05 编辑
回复 2# newswan
大神,我给你看下我的文件路径:
C:\NEW\DATA\A\11NW19C\B357821959101062D0,然后B357821959101062D0文件夹里面有几个文件B357821959101062D0.jpg和B357821959101062D0.txt。 当然A这个路径下面有很多个文件,11NW19C,11NW19D,11NW19E,就不列举了。11NW19C这些文件里面有很多个文件夹,文件名字是18位数字的B357821959101062D0这些,多谢大神。
作者: newswan 时间: 2021-6-3 16:35
B357821959101062D0
17行改成 B???%%a*
多少个?你自己算
作者: arjunayuki 时间: 2021-6-3 17:38
回复 5# newswan
大神,你好,我试着运行了下,是能COPY文件的,但是结果运行不太对,因为只把子文件里面的文件.JPG那些给复制出来了,没有把文件夹给复制出来,我希望是能把文件夹BXXX连同里面的文件一起复制出来,还有就是可能我上面写得不是太清楚,我里面有些文件是重复的,区别在前15位是一样的,只有第16位不同,我是想通过16位的变化,让程序能够帮我筛选出想要的结果,比如存在3个文件夹,B27238424490106011, B27238424490106211,B27238424490106411,这3个前面全部一样,第16位开始有变化,希望通过小程序能够让B27238424490106411这个被复制出来,而其余的2个不需要复制,如果其他只有一个文件的,比如B37238424490106011这个只有一个文件时候,那么也要复制到最后结果的文件夹里面,谢谢
作者: newswan 时间: 2021-6-3 19:55
回复 6# arjunayuki
应该没问题的,小改了一下,如果有问题,把输出看看。
作者: arjunayuki 时间: 2021-6-4 09:15
回复 7# newswan
大神,需要小改哪里呢?能否告诉我,谢谢
作者: newswan 时间: 2021-6-4 22:52
回复 8# arjunayuki
上面已经改了,你测试
作者: arjunayuki 时间: 2021-6-7 09:54
回复 9# newswan
已经测试过了,很快,显示的是找不到资料,然后我试试之前大神说的是MOVE改成XCOPY都不行,输出的文件夹里面什么都没有
作者: newswan 时间: 2021-6-7 15:36
本帖最后由 newswan 于 2021-6-7 16:56 编辑
回复 10# arjunayuki
每个文件夹里找一个 文件夹 ? 第1个字符是B 第16个字符是数字,最大的数字
上面改了。看看屏幕输出
已测试,目录树- ├───data
- │ └───a
- │ ├───a
- │ │ ├───a1
- │ │ ├───a2
- │ │ └───a3
- │ ├───b
- │ │ ├───b1
- │ │ ├───B123412341234xx9abc
- │ │ ├───b2
- │ │ └───b3
- │ └───c
- │ ├───c1
- │ ├───c2
- │ └───c3
- └───test
复制代码
作者: arjunayuki 时间: 2021-6-8 10:47
回复 11# newswan
已经解决,多谢大神
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |