标题: [文件操作] 求助批处理移动文件到指定文件夹。逻辑比较复杂。 [打印本页]
作者: fouliny1 时间: 2022-7-17 18:01 标题: 求助批处理移动文件到指定文件夹。逻辑比较复杂。
文件夹1 下面有很多文件夹。
20220101-001xxx
20220709-851xxx
20221111-025xxx
20220121-101xxx
已知前12位有规律。xxx不确定
截取前12位
然后在局域网共享文件夹
\\192.168.1.1\目录\文件夹2 内拿前十二位来搜索
文件夹2内容如下
[完毕]20220101-001xxx
[完毕]20220101-001xxx
[完毕]20220709-851xxx
[完毕]20221111-025xxx
[完毕]20220121-101xxx
......
如果搜到了就进入搜到的文件夹。把这个文件夹内的名字为*.bbb后缀名的文件。
复制到本地文件夹1 里面的指定前十二位吻合的文件夹。
作者: flashercs 时间: 2022-7-17 19:47
- @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- for /d %%A in ("文件夹1\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.1.1\目录\文件夹2\[完毕]!fd1:~0,12!*") do (
- copy /y "%%B\*.bbb" "%%A\"
- )
- )
- pause
复制代码
作者: fouliny1 时间: 2022-7-18 12:59
回复 2# flashercs
大佬还有个疑问。我复制完了那个.bbb之后。我想把这个路径打印出来。输出到一个list.txt的文本。
格式如下。方便其他软件调用。
\\192.168.1.1\目录\文件夹2\[完毕]20220101-005xxx\xxx.bbb
\\192.168.1.1\目录\文件夹2\[完毕]20220509-805xxx\xxx.bbb
\\192.168.1.1\目录\文件夹2\[完毕]20220911-905xxx\xxx.bbb
\\192.168.1.1\目录\文件夹2\[完毕]20220121-105xxx\xxx.bbb
这个文本的顺序就是bat代码搜索的顺序。现在有一个问题。他搜索顺序是按照当前文件夹,我自己设置的按日期排序还是按名称排序呢。还是bat有自己的判断方式。
这个不重要。我就是想了解一下。输出来的格式。能不能和文件夹对应上。避免其他软件按顺序调用的时候和txt里面的错位。
作者: flashercs 时间: 2022-7-18 13:15
回复 3# fouliny1 - @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- (
- for /d %%A in ("文件夹1\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.1.1\目录\文件夹2\[完毕]!fd1:~0,12!*") do (
- for %%C in ("%%B\*.bbb") do (
- echo %%C
- copy /y "%%C" "%%A\" >nul
- )
- )
- )
- )>list.txt
- endlocal
- pause
复制代码
作者: fouliny1 时间: 2022-7-19 15:57
回复 4# flashercs
今天试了试。上面显示着。请按任意建继续。然后回车后。有一个list.txt是空白的。什么错误都没有。不行呢。咋回事。
作者: fouliny1 时间: 2022-7-24 11:41
大佬求救啊。
作者: LJY4.0 时间: 2022-7-24 18:35
这样呢:- @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- for /d %%A in ("文件夹1\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.1.1\目录\文件夹2\[完毕]!fd1:~0,12!*") do (
- for %%C in ("%%B\*.bbb") do (
- echo %%C>>list.txt
- copy /y "%%C" "%%A\" >nul
- )
- )
- )
- endlocal
- pause
复制代码
作者: flashercs 时间: 2022-7-24 19:00
批处理保存为ANSI编码 试试
作者: fouliny1 时间: 2022-8-2 17:17
本帖最后由 fouliny1 于 2022-8-2 17:19 编辑
回复 8# flashercs [code]@echo off
可以拉。谢谢大佬
作者: fouliny1 时间: 2022-8-6 09:58
回复 8# flashercs
还有一个问题大佬。。
list
是这样的。
\\192.168.18.222\n8选版目录\选版服务器\[已选]20220616-001\工程\20220616-001宁溢宸原片_10X10环保双面印.n8cprj
我只想打印到这里
\\192.168.18.222\n8选版目录\选版服务器\[已选]20220616-001\工程\- @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- (
- for /d %%A in ("设计\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.18.222\n8选版目录\选版服务器\[已选]!fd1:~0,12!*") do (
- for %%C in ("%%B\工程\*.n8cprj") do (
- echo %%C
- copy /y "%%C" "%%A\" >nul
- )
- )
- ) >list.txt
- )
- endlocal
- pause
复制代码
作者: flashercs 时间: 2022-8-6 11:28
回复 10# fouliny1 - @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- (
- for /d %%A in ("设计\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.18.222\n8选版目录\选版服务器\[已选]!fd1:~0,12!*") do (
- for %%C in ("%%B\工程\*.n8cprj") do (
- echo %%~dpC
- copy /y "%%C" "%%A\" >nul
- )
- )
- )
- ) >list.txt
- endlocal
- pause
复制代码
作者: gemeiq 时间: 2022-8-12 18:51
果然是大神
作者: fouliny1 时间: 2022-8-28 22:12
回复 11# flashercs
大佬,想求一个校验拷贝的代码,需求是这样的。不知道能不能加到上面这个代码里。如果不能加。就想另起一个bat
A网络上的 文件夹还是[已选]20200808-123xxxxxxx
这个目录下面有一个叫 已选照片 的文件夹,下面有很多*.jpg
如1.jpg 2.jpg 5.jpg 99.jpg
然后B网络上的文件夹是 20200808-123
他们这几个数字肯定是一摸一样的。这是唯一id
这个目录下面有一个叫 照片 的文件夹,
下面也有很多*.jpg
如1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg .... 100.jpg
如果找到一样的文件名就拷贝到本地20200808-123xxxx
如示例的话拷贝到本地20200808-123xxxx 里的应该是只有B网络的 1.jpg 2.jpg 5.jpg 99.jpg 其他文件不拷贝。
作者: flashercs 时间: 2022-8-28 23:39
回复 13# fouliny1 - @echo off
- setlocal EnableDelayedExpansion
- cd /d "%~dp0"
- (
- for /d %%A in ("设计\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\192.168.18.222\n8选版目录\选版服务器\[已选]!fd1:~0,12!*") do (
- for %%C in ("%%B\工程\*.n8cprj") do (
- echo %%~dpC
- copy /y "%%C" "%%A\" >nul
- )
- )
- )
- ) >list.txt
-
- @REM 拷贝图片
- for /d %%A in ("设计\*") do (
- set fd1=%%~nxA
- for /d %%B in ("\\A网络\[已选]!fd1:~0,12!*") do (
- for %%C in ("\\B网络\!fd1:~0,12!\照片\*.jpg") do (
- if exist "%%~B\已选照片\%%~nxC" (
- copy /y "%%~C" "%%~A\"
- )
- )
- )
- )
- endlocal
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |