Board logo

标题: [文件操作] [已解决]求助:批处理怎样从某个子目录里复制出文件? [打印本页]

作者: yjlz    时间: 2013-9-1 15:08     标题: [已解决]求助:批处理怎样从某个子目录里复制出文件?

求助:有个文件目录,此目录下有很多子目录,要复制一个文件,不清楚这个文件在那个子目录里,求教怎么实现

使用xcopy命令,加上参数 /E ,可以实现这个功能,但是会把磁盘根目录下的所有文件目录都复制过去了

ps:起始目录为磁盘根目录,根目录下有很多文件夹,复制这个文件之前,不确定此文件在那个目录

ps:已经解决,谢谢各位热心的网友!

解决方法在23楼
作者: terse    时间: 2013-9-1 15:29

dir /s filename
作者: yjlz    时间: 2013-9-1 15:35

回复 2# terse

我要把这个文件复制出来呢
作者: terse    时间: 2013-9-1 15:45

回复 3# yjlz
  1. for /f "delims=" %%i in ('dir /s /b /a-d "c:\test\a.txt"') do copy "%%i" c:\
复制代码

作者: yjlz    时间: 2013-9-1 16:06

回复 4# terse

命令执行之后显示"此时不应有 %%i。"


看不太懂,麻烦能解释下吗?
作者: DAIC    时间: 2013-9-1 16:38

回复 5# yjlz


    你是直接在CMD窗口里面执行的那个命令?
作者: yjlz    时间: 2013-9-1 16:45

回复  yjlz


    你是直接在CMD窗口里面执行的那个命令?
DAIC 发表于 2013-9-1 16:38


好久没有玩dos了,后来想起来了,已经带入变量,但是提示找不到文件
麻烦帮忙修改下
输入的文件名为数字
   
set /p "i=请输入要复制的文件:"
for /f "delims=" %%i in ('dir /s /b /a-d "c:\test\a.txt"') do copy "%%i" c:\
pause
作者: DAIC    时间: 2013-9-1 16:56

回复 7# yjlz


    文件夹的名字是什么?
作者: yjlz    时间: 2013-9-1 16:59

回复 8# DAIC

磁盘根目录啊,根目录下有很多文件夹,复制这个文件之前,不确认此文件在那个目录
作者: terse    时间: 2013-9-1 17:20

好久没有玩dos了,后来想起来了,已经带入变量,但是提示找不到文件
麻烦帮忙修改下
输入的文件名为数字 ...
yjlz 发表于 2013-9-1 16:45
  1. set /p "i=请输入要复制的文件:"
  2. for /f "delims=" %%i in ('dir /s /b /a-d "c:\%i%"') do copy "%%i" d:\
  3. pause
复制代码

作者: Lumiere    时间: 2013-9-2 00:47

回复 7# yjlz
  1. @echo off
  2. cd /d d:\
  3. ::此处为你要搜索文件的根目录,自行修改
  4. set /p "i=请输入要复制的文件:"
  5. for /f "delims=" %%i in ('dir /s /b /a-d "a.txt"') do copy "%%i" c:\
  6. pause
复制代码

作者: DAIC    时间: 2013-9-2 08:42

顶楼:
有个文件目录,此目录下有很多子目录

9楼:
磁盘根目录啊,根目录下有很多文件夹


希望能够在顶楼一次性把问题描述清楚,不要老是改来改去。
作者: yjlz    时间: 2013-9-2 10:28

回复 11# Lumiere


找不到文件
作者: yjlz    时间: 2013-9-2 10:30

回复 12# DAIC


    不好意思,是我没有说清楚.谢谢提醒
作者: terse    时间: 2013-9-2 10:55

回复 1# yjlz
把 a.txt 改为 %i%
作者: yjlz    时间: 2013-9-2 11:02

回复 15# terse


谢谢,还是不行呢
作者: yjlz    时间: 2013-9-2 11:07

回复 10# terse


谢谢,for语句执行好几秒,但最终显示查找不到文件
作者: Lumiere    时间: 2013-9-2 11:17

回复 13# yjlz


    吧a.txt改成你要搜索的文件名或者类型就行了。
作者: yjlz    时间: 2013-9-2 11:22

回复 18# Lumiere


    麻烦你看下17楼的,a.txt已经是要搜索的文件啦 ,还是不行呢
作者: terse    时间: 2013-9-2 11:34

确认文件存在吗
作者: Lumiere    时间: 2013-9-2 11:35

回复 16# yjlz


    你的扩展名都没改,吧a.txt改成%i%
作者: yjlz    时间: 2013-9-2 11:37

回复 20# terse


    确认存在
作者: yjlz    时间: 2013-9-2 11:42

回复 21# Lumiere


    非常感谢,已经搞定了!

谢谢大家!

代码如下:
cd /d e:\
set /p "i=请输入要复制的文件:"
for /f "delims=" %%i in ('dir /s /b /a-d "%i%"') do copy "%%i" d:\
pause
作者: Lumiere    时间: 2013-9-2 16:30

回复 23# yjlz
之前那个a.txt只是随便举例作参考的,你将代码的a.txt部分改成%i%就好了,我自己也没注意想着要提醒但是代码写成a.txt了
作者: yjlz    时间: 2013-9-2 16:43

回复 24# Lumiere


    嗯,谢谢你
开始急着用,没有研究这个命令,现在已经搞懂了




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