从不断变化的目录中复制文件和文件夹[关闭]

Posted

技术标签:

【中文标题】从不断变化的目录中复制文件和文件夹[关闭]【英文标题】:xcopy file and folder from a changing directory [closed] 【发布时间】:2020-09-18 03:03:40 【问题描述】:

我在尝试 Xcopy 文件时收到 0 个文件已复制消息。 请注意,我通过指定确切的源路径成功地做到了这一点,如下所示:

xcopy /y %USERPROFILE%\Desktop\WinXTweak\program1.exe %WINDIR%\
xcopy /y %USERPROFILE%\Desktop\WinXTweak\program2.exe %WINDIR%\
xcopy /y %USERPROFILE%\Desktop\WinXTweak\program3.exe %WINDIR%\

当然,这只有在 WinXTweak 文件夹在桌面上时才有效。我希望能够将它复制到 USB 驱动器或我 PC 中的任何位置并运行它。批处理文件的位置也在 WinXTweak 文件夹中。我不知道该怎么办。我尝试了以下方法,但确实失败了。

xcopy /y program1.exe %WINDIR%\
xcopy /y program2.exe %WINDIR%\
xcopy /y program3.exe %WINDIR%\

提前谢谢大家,

【问题讨论】:

您正在使用%WINDIR% 作为您的目标目录。即使您要使用更现代的替代旧变量%SYSTEMROOT%,该目录也可能是受保护的位置。当你用不同的目录测试它时会发生什么?或者,在同一位置但以“管理员身份”运行脚本? 在您的示例中,需要管理员权限,如@Compo 所说。除此之外,您的示例应该可以工作,但请尝试使用 xcopy "<source>" "<destination>" /y 之类的引号将源目录和目标目录括起来 为了在任何有效位置执行命令,请结合在 Dir 命令上运行的 For /F` 循环,例如:For %%I in ("program1.exe" "program2.exe" "program3.exe") Do For /F "Delims=" %%F in ('dir /b %%I /s') Do xcopy /y "%%~F" "%Destination%" 基于您只是复制文件而不使用xcopy 的各种选项的事实,我建议您也将该命令替换为内部copy 命令。例如@For %%G In (1 2 3) Do @Copy /Y "program%%G.exe" "%SystemRoot%" 1>NUL 2>&1. 【参考方案1】:

感谢大家的回复。在线阅读更多内容后,我能够使用以下代码解决问题。我是这方面的新手,可能有一种更简单的方法,这就是我使用的方法。

@echo off

set source=%~dp0*.exe
set target="%WINDIR%"
xcopy /y "%source%" "%target%"

我会记下并学习建议的答案,以便将来使用。

感谢您的帮助和最诚挚的问候,

【讨论】:

除了您已经在 cmets 中给出的建议之外,我建议您更改您的 set 命令以使用推荐的语法。将set source=%~dp0*.exe 更改为set "source=%~dp0*.exe",将set target="%WINDIR%" 更改为set "target=%WINDIR%"

以上是关于从不断变化的目录中复制文件和文件夹[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

按文本字符长度对目录中的文件进行排序并复制到其他目录[关闭]

从不断更新的文件中读取

Arduino 从不断更新的文件中读取

将文件名中具有特定字符串的目录中的所有文件复制到Bash中的不同目录[关闭]

为啥 logoutController 从不调用? [复制]

什么是 cp:Unix 中无法统计错误,尝试将内容从一个文件夹复制到另一个文件夹时出现此错误 [关闭]