批处理移动文件---急!

来源:百度知道 编辑:UC知道 时间:2024/05/01 01:13:23
如下:
@echo off
for /r %%a in (ip_s.txt) do (FOR /R %path_s% %%i IN (*.xml) DO cls&&echo Moving:%%i&&move "%%i" %path_d% /y > nul&&echo.&&echo.&&echo Done!)

1.ip_s.txt里的内容为move的源电脑之ip,每个ip各起一行,如192.168.7(回车)192.168.9),对应变量:%%a
2.path_s.txt存放着move的源电脑之不同路径,对应变量:%path_s%
3.path_d.txt存放着对应的move之目标路径,对应变量:%path_d%

问题:
如何应用到上述的批处理中。
在线等待,感谢!

不知道lz这个批处理的目的是什么,直接把需要的功能贴出来吧

ip_s.txt里面的内容,也就是%%a,在内层的循环中完全没有用到
而且for命令如果用/r参数,而in后面跟的是一个文件名的话,不会读取这个文件的内容,而是遍历当前目录,并且把括号里的内容加在每一个文件夹下

其实批处理是支持换行的,完全可以写成下面这样更加易读的格式
@echo off
for /r %%a in (ip_s.txt) do (
for /r %path_s% %%i in (*.xml) do (
cls
echo Moving: %%i
move "%%i" %path_d% /y >null
echo.
echo Done!
)
)

根据我的推测是想用同一个批处理在ip不同的电脑上运行,达到把某个目录下的xml文件全部移动到另一个文件夹,每一台电脑上的源目录和目标目录都不同
可以把ip_s.txt,path_s.txt,path_d.txt合并成一个txt,里面每一条记录形如

192.168.0.1 d:\source e:\destination

中间可以用任意符号分隔,不过我推荐用逗号或者分隔符(Tab),因为这两种符号可以和excel互相导入
比如另存为Path.txt
然后用
for /f "delims=, tokens=1,2,3" %%a in(Path.txt) do ()
delims是分隔符列表,tokens是要读取的行数
上面这句就把path.txt里的每一样的第一、二三列分别赋给%%a %%b %%c

偶对批处理有兴趣 收藏了