2016-10-07 107 views
-1

我是初学者,需要在Windows中复制文件的帮助。我在不同的子文件夹中有xlsx文件。我想要复制的文件的名称包含(但不限于)"Reporting Assessment Tool"。我想复制包含该名称的所有文件,并将它们带到平面源目标(不需要文件夹结构)。批处理:将文件从具有特定文件名的不同子文件夹复制到其他目标

来源:C:\用户\用户名\桌面\上传
目的地:C:\用户\源\桌面\工具

到目前为止,我曾尝试以下

cd /D "c:\users\jubalkheimer\desktop\upload" @for /r %%a in ("*Reporting Assessment Tool.xlsx") do ( 
copy "%%a" "c:\users\jubalkheimer\desktop\tool\"%%~a") 

我没有收到错误消息,但文件不会被复制....

你能帮忙吗? 非常感谢

+0

这不是一个免费的代码写作服务,所以请您共享您尝试过的内容,并准确描述您卡在哪里!在这里学习[如何提问](http://stackoverflow.com/help/now-to-ask)! – aschipfl

+0

谢谢 - 添加代码。在原始评论中 – Julia

+0

在'* Reporting Assessment Tool.xlsx'周围添加引号,并用'“%%〜a”替换“%% a”';否则白色空间的干扰... – aschipfl

回答

0

此任务的批处理文件代码可能是:

@echo off 
for /R "%USERPROFILE%\desktop\upload" %%I in ("*Reporting Assessment Tool.xlsx") do (
    copy /-Y "%%I" "%USERPROFILE%\desktop\tool\%%~nxI" 
) 

这可以用在批处理文件中的一个命令行也做:

@for /R "%USERPROFILE%\desktop\upload" %%I in ("*Reporting Assessment Tool.xlsx") do @copy /-Y "%%I" "%USERPROFILE%\desktop\tool\%%~nxI" 

区分大小写的环变量I在每个循环中保持具有完整路径的文件的名称,而不在指定目录或该目录的任何子目录中找到与文件名称模式*Reporting Assessment Tool.xlsx匹配的双引号。

要复制找到的文件并提示批处理文件的用户在目标目录中覆盖已存在的具有相同名称的文件,必须将指定给循环变量的字符串指定为第一个参数,并将第二个参数指定为目标路径以及找到的文件的文件名和文件扩展名,不含路径。这解释了COPY命令行中"%%I"(文件名的扩展名和完整路径用双引号括起来)和"Target Path\%%~nxI"(只是文件名和文件扩展名,固定目标路径用双引号括起来)的用法。

为了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • copy /?
  • echo /?
  • for /?

%USERPROFILE%引用预定义的环境变量USERPROFILE保持该路径来分析当前用户帐户的目录。

在没有使用Windows资源管理器的批处理文件的情况下执行此任务将非常容易。

  1. 导航到文件夹中%USERPROFILE%\desktop\upload
  2. 运行文件夹为*Reporting Assessment Tool.xlsx
    Windows资源管理器搜索自动搜索该文件夹和所有子文件夹匹配该文件名模式的文件递归。
  3. 选择所有找到的文件与Ctrl + A(全选)。
  4. 准备复制所有选定的文件与Ctrl + C(复制)。
  5. 导航到文件夹%USERPROFILE%\desktop\tool
  6. 粘贴用于与Ctrl + V键(粘贴),这导致现在复制文件复制制得的文件。
+0

Merci!有效。非常感谢您的解释! – Julia

相关问题