Board logo

标题: [文件操作] 批处理如何根据文件内容复制局域网服务器的文件? [打印本页]

作者: 鱼东东    时间: 2012-1-6 13:14     标题: 批处理如何根据文件内容复制局域网服务器的文件?

1.txt里面的内容:
A(1620111129020030000022-1).tif
A(1620111129020030000025-1).tif
A(1620111129020030000053-1).tif
A(1620111129020030000110-1).tif
A(1620111129020030000122-1).tif
A(1620111129020030000065-1).tif
等等 文件名字没有规律,有大约1千100多件
全部分布于局域网服务器的\\192.168.2.253\JobSystem2\pdf目录里面的很多小文件夹内
现在我要做的是 一个P处理自动在\\192.168.2.253\JobSystem2\pdf搜索1.TXT的文件并且复制到 \\192.168.2.253\JobSystem2\1 《1是文件夹的名字》内。
有没有人可以写出这样的P处理???
实在 是感激不尽啊 ~~
作者: find    时间: 2012-1-6 13:41

  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.     copy "\\192.168.2.253\JobSystem2\pdf\%%a" "\\192.168.2.253\JobSystem2\1\"
  4. )
复制代码

作者: lovedjsn    时间: 2012-1-6 13:53

如果是在局域网非在本地运行路径应为 \\计算机名\共享路径\
作者: 鱼东东    时间: 2012-1-6 13:56

谢谢 find  的回答 我试试了 没有成功
作者: lovedjsn    时间: 2012-1-6 13:57

FIND代码是没有错,关键是你路径是什么样的~!
作者: find    时间: 2012-1-6 13:58

回复 4# 鱼东东


报错信息是什么?
作者: 鱼东东    时间: 2012-1-6 14:13

可能是路径的问题吧 点了马上秒退了 这个要是拿到服务器上去做的话 没准可以成功 去试试
作者: lovedjsn    时间: 2012-1-6 14:20

回复 7# 鱼东东


    你把开头off 去掉...在最后面加个PAUSE 看一下他报错是什么~~
作者: 鱼东东    时间: 2012-1-6 14:26

可能我没有说清楚 我说的
A(1620111129020030000022-1).tif
A(1620111129020030000025-1).tif
A(1620111129020030000053-1).tif

等等 这些文件 是在\\192.168.2.253\JobSystem2\pdf
pdf这个大文件夹里的小文件夹里 因为PDF里面有非常多的小文件夹 文件夹里面还有文件夹
那些我要找的文件具体我也不知道根目录是哪个文件夹

这样的话是不能搜索的是吗?DOS下不能搜索对不对?
作者: find    时间: 2012-1-6 14:30

回复 9# 鱼东东


可以先用net use命令把远程共享文件夹映射到本地,然后处理起来比较方便。
作者: lovedjsn    时间: 2012-1-6 15:15

回复 9# 鱼东东


    那样只能取文件名对己知路径进行搜索读取路径再进行移动了~~!
作者: find    时间: 2012-1-6 15:18

回复 11# lovedjsn


怎么搜索?
作者: lovedjsn    时间: 2012-1-6 15:54

路径自己改一下
如果是在局域网非在本地运行路径应为 \\计算机名\共享路径\
  1. @echo off
  2. ::源文件路径
  3. set "drv1=C:\JobSystem2\pdf\"
  4. ::目标路径
  5. set "drv2=C:\JobSystem2\1\"
  6. for /f "delims=" %%a in (1.txt) do call :a %%a
  7. goto :eof
  8. :a
  9. for /f "delims=" %%b in ('dir /s/b/a-d "%drv1%%1" 2^>nul') do (
  10. copy "%%b" "%drv2%"
  11. )
  12. goto :eof
复制代码

作者: 鱼东东    时间: 2012-1-6 16:28

回复 13# lovedjsn


    感谢你的代码 我试试了
@echo off
::源文件路径
set "drv1=\\192.168.2.253\JobSystem2\pdf\"
::目标路径
set "drv2=E:\1"
for /f "delims=" %%a in (E:\1.txt) do call :a %%a
goto :eof
:a
for /f "delims=" %%b in ('dir /s/b/a-d "%drv1%%1" 2^>nul') do (
copy "%%b" "%drv2%"
)
goto :eof
运行后 定住了
作者: lovedjsn    时间: 2012-1-6 16:48

本帖最后由 lovedjsn 于 2012-1-6 23:12 编辑

回复 14# 鱼东东


    问题出在你的\\192.168。。。这里建议你映射到本地再进行操作

   如果你是在服务器上直接运行的话~~代码应该是可行的~!

net use \\ip\ipc$ " " /user:" " 建立IPC空链接
net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: \\ip\c$ 登陆后映射对方C:到本地为H:
net use \\ip\ipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
复制于网络~~!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2