![]() |
1
170
一个看似无证的伎俩是
这个
|
![]() |
2
21
实际上,xcopy不会询问原始文件是否存在,但如果要将其放入名为shapes.atc的新文件夹中,或者放入文件夹支持(这正是您想要的)。 为了防止Xcopy询问这个问题,只需告诉他目标文件夹,这样就不会有歧义:
如果要更改目标中的文件名,只需使用copy(复制文件时比xcopy更合适):
|
![]() |
3
11
|
|
4
10
真正的技巧是:在复制文件的目标路径的末尾使用反斜杠。如果不需要警告,则/y用于覆盖现有文件。 例子:
|
![]() |
5
5
对于强制文件,我们可以使用管道 “回声F” :
对于强制文件夹,我们可以对xcopy使用/i参数,或者在目标文件夹的末尾使用反斜杠()。 |
![]() |
6
3
/I开关可能是你想要的。 来自xcopy/? /如果目的地不存在并复制多个文件, 假设目标必须是一个目录。 |
![]() |
7
3
嗯,按要求完成任务 just me 根据不完整的建议,最好的解决方案可能是以下命令 Andy Morris :
这适用于这个简单的文件复制任务,因为
与问题无关的其他参数有:
嗯,我不知道
可以通过打开命令提示窗口并在此窗口中运行来读取参数的说明。
但是,所提供的任何解决方案都不适用于文件复制任务,在该任务中,应将单个文件复制到与源文件相同的目录中,但由于当前日期和时间的原因,文件扩展名之前的文件名中插入了不同的文件名。 源文件可以具有隐藏或系统属性集,不包括 拷贝 命令。 用于创建时间戳文件的批处理文件也应在Windows XP上工作,不包括 机器人学 因为默认情况下在Windows XP上不可用。
批处理文件应该与任何文件一起使用,包括
有关完整的任务描述和最终的完全注释的解决方案,请参阅文章 Create a backup copy of files 在超级编辑论坛。
Patrick's
,
Tirtha R's
,
Interociter Operator's
和
CharlesB's
解决方案不起作用,因为使用
Andy Morris' 和 grenix's 解决方案不能用于单个文件复制任务,因为目标必须是目标文件的名称,而不是目标目录的名称。目标目录与源目录相同,但目标文件的名称与源文件的名称不同。 DosMan's 和 Govert's 解决方案不适用于从一个点开始但没有文件扩展名的文件。 例如,命令
执行时出现以下错误消息:
最后 Denis Ivin's 解决方案有一个限制,即必须知道文件或目录提示自动应答的操作系统语言相关字符。
所以我想了一些方法
确实可以确定提示自动应答的语言相关字符。 hack用于从提示文本中获取依赖语言的字母,而不必真正复制任何文件。 命令 复印件 用于开始将批处理文件本身复制到临时文件的文件夹中,文件扩展名为目标文件的tmp。这将导致提示 复印件 如果临时文件文件夹中没有该名称的文件,这是非常不可能的。 设备的处理程序 努尔 用作的输入处理程序 复印件 导致在输出提示后中断复制过程 复印件 两次。 此输出在 为了 从左括号开始的第一行退出的循环。这是第二个字符定义用于指定目标为文件的字母的行。 这是一个批处理文件,使用 复印件 使用代码来确定自动应答文件所需的字母或目录提示,以便在与源文件相同的目录中创建单个文件的时间戳副本,即使源文件是隐藏文件或系统文件,并且即使源文件以点开头而不是以点开头。保存文件扩展名。
此批处理代码在德语Windows XP SP3 x86和英语Windows 7 SP1 x64上进行了测试。 看帖子 创建文件的备份副本 在超级编辑论坛中,一个类似的、完全注释的批处理文件解释了批处理代码的所有部分。 为了了解使用的命令及其工作方式,请打开一个命令提示窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。
微软关于 Using command redirection operators 也应该读。 |
![]() |
8
2
当新的扩展名较短时,可以使用附加“*”的技巧。您需要用空格填充新的扩展名,这只能通过用引号括住目标文件名来完成。例如:
这将在不提示的情况下复制和重命名。 “这不是一个bug,这是一个功能!”(我曾经在微软的停车场看到过一辆大众甲壳虫,上面有一块“功能”牌。)重命名的语义可以追溯到我写DOS v.1的时候。新名称中的字符将逐个替换旧名称中的字符,除非是通配符(?或*)出现在新名称中。如果不向新名称添加空白,则从旧名称复制剩余字符。 |
![]() |
9
0
…应该这样做。 做一个好主意:
(假设您已将以前的版本重命名为.old)
|
![]() |
10
0
虚拟家长技巧 假设您的源文件和目标文件在
您可以使用两步方法:
这将被解决,例如
我是在无意中发现了一些非常疯狂的../.-构造,这些构造是由构建过程生成的命令行中的。 |
![]() |
11
0
我遇到了完全相同的问题,为了备份的目的,我想把文件复制到一个外部硬盘上。 如果我想复制一个完整的文件夹,那么copy非常乐意创建目标文件夹并用所有文件填充它。 但是,我想每天复制一次文件,并将今天的日期添加到文件中。 copy很乐意复制该文件并以新格式重命名,但前提是目标文件夹已经存在。 我的复制命令如下: 拷贝 C:\srcfolder\myfile.doc D:\destfolder\myfile\u yyyymmdd.doc文件 像你一样,我四处寻找替代开关或其他复制类型的命令,但是没有什么能像我想要的那样工作。 然后我想通过在copy命令之前添加make directory(md或mkdir)命令来分解这两个不同的需求。 所以现在我有了 麦克迪尔 D:\目标文件夹 拷贝 C:\srcfolder\myfile.doc D:\destfolder\myfile\u yyyymmdd.doc文件 如果目标文件夹不存在,则创建它。 如果目标文件夹确实存在,则会生成一条错误消息。但是,这不会阻止批处理文件继续执行copy命令。 错误信息显示: 子目录或文件d:\destfolder已经存在 正如我所说,错误消息不会停止批处理文件的工作,它是解决问题的一个非常简单的方法。 希望这有帮助。 |
![]() |
late1 · 批处理文件未执行命令 2 年前 |
![]() |
Ali EXE · 如何根据bat中命令的输出设置变量? 3 年前 |
![]() |
Laureano Oliva · 如何将链接用作参数%1批处理函数? 3 年前 |
![]() |
F35H · 涉及二次使用cd的错误。。在C代码中 3 年前 |