如果文件存在,则将文件复制为另一个名称

2024-01-30

我想将特定文件从电脑复制到 USB

我的代码:

  xcopy /H /Y /C /R "C:\image1.jpeg" "G:\backup\image.jpeg"

我想做以下事情: 如果 G:\backup\image1.jpeg 存在,则将 image.jpeg 复制为 image2.jpeg(或其他名称),

如果 image2.jpeg 存在,则复制为 image3.jpeg 等。

是否有可能做到这一点?


我假设您的源名称是“image.jpeg”,并且您的目的地具有附加后缀。

我建议在附加的后缀之前加一个点,以明确原始名称的结束位置和后缀的开始位置。您原来的名字末尾可能已经有一个数字。

这里有一个粗暴但非常有效的暴力破解方法,最多支持 100 个副本。显然上限可以很容易地增加。

call :backup "c:\image.jpeg"
exit /b

:backup
for /l %%N in (1 1 100) do (
  if not exist "G:\backup\%~n1.%%N.%~x1" (
    echo F|xcopy %1 "G:\backup\%~n1.%%N.%~x1" >nul
  )
  exit /b
)

但有一个潜在的问题。假设 image.1.txt 和 image.2.txt 已存在,但随后您删除了 image.1.txt。下次备份时,它将重新创建 image.1.txt,然后您可能会认为 image.2.txt 是最新的备份。

以下内容可用于始终创建一个数字后缀 1 大于现有最大后缀的新备份,即使数字中有整数也是如此。

@echo off
call :backup "c:\image.jpeg"
exit /b

:backup
setlocal disableDelayedExpansion
set /a n=0
for /f "eol=: delims=" %%A in (
  'dir /b "g:\backup\%~n1.*%~x1"^|findstr /rec:"\.[0-9][0-9]*\%~x1"'
) do for %%B in ("%%~nA") do (
  setlocal enableDelayedExpansion
  set "n2=%%~xB"
  set "n2=!n2:~1!"
    if !n2! gtr !n! (
    for %%N in (!n2!) do (
      endlocal
      set "n=%%N"
    )
  ) else endlocal
)
set /a n+=1
echo F|xcopy %1 "g:\backup\%~n1.%n%%~x1" >nul
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果文件存在,则将文件复制为另一个名称 的相关文章

随机推荐

  • 为什么 ondrop 不起作用?

    我试图让拖放工作 但我将一个函数连接到 ondrop 事件 但该函数从未被调用 这是一个笨蛋 http plnkr co edit qGEdYO8okRZAR3bnZrNk p preview http plnkr co edit qGEd
  • MPMediaItems 原始歌曲数据

    我想知道如何访问 MPMediaItem 的原始数据 有任何想法吗 您可以通过以下方式获取媒体项的数据 void mediaItemToData Implement in your project the media item picker
  • 其他语言中的 Cobol 88 类型等效项是什么?

    我现在正在学习 COBOL 非常喜欢 88 类型的变量 我想知道其他语言中是否有类似的东西 也是最知名的语言 例如 C Objective C 甚至使用库 我唯一能想到的相似之处就是使用 define booleanResult varia
  • 颠倒方向在 iOS 6 中不适用于导航视图和选项卡栏视图?

    我在 ios 6 中创建了一个带有导航视图的应用程序 此外 我还在应用程序摘要中设置了所有方向选项 甚至使用了 BOOL shouldAutoRotate and NSUInteger supportedInterfaceOrientaio
  • 如何在 Java Swing 中同步两个视图

    我正在尝试这样做 在我的 GUI 中 我有一个带有自定义模型的 JTable 在 GUI 的其他部分 我有一个面板 可以在其中绘制一些箭头 我想 同步这两个视图 假设我的 JTable 中有 5 行 我将在箭头面板中绘制 5 个箭头 如果我
  • 使用 ExtJS4 从文本字段切换到显示字段

    我创建了一个在普通显示字段中显示值的表单 表单旁边有一个 编辑 按钮 一旦用户单击 显示字段应切换为文本字段 因此使数据可编辑 我猜测 这可以通过使用两种相同的表单来实现 一种可编辑 一种不可编辑 并且根据用户单击按钮的情况 其中一种或另一
  • 未知标签类型:“连续”

    我的团队伙伴 有问题 Avg SessionLength TimeonApp TimeonWebsite LengthofMembership Yearly Amount Spent 0 34 497268 12 655651 39 577
  • IE 中 jquery Accordion 的无效参数错误

    jquery 手风琴抛出 无效参数 IE 中的例外 我的是 IE8 它适用于 Firefox 和 Chrome jquery Accordion 与 IE 可能存在什么问题 这是 HTML div h3 a href Training a
  • IE9 导入内联 SVG 元素损坏

    我在用这个方法 https stackoverflow com a 9883539 494954将 SVG 文档导入到页面中 效果很好 但在 IE9 中 没有一个
  • 如何用CSS使3个元素相互重叠

    我有3个要素 div class foo div div class bar div div class foobar div I want foo重叠 bar bar重叠 foobar foobar重叠 foo 像这样 用CSS可以吗 没
  • 如何选择本示例中未使用的代码

    我有一个int我的表中的列SQL数据库 我在这张表中保留了一些代码 我的代码的示例范围是 1 9 我不需要在这个范围内使用代码 Example 使用的代码是 Select code from MyTable result is 2 6 7
  • asp.net c# 中的 System.Web.Caching.Cache.NoSlidingExpiration

    请告诉我有关System Web Caching Cache NoSlidingExpiration在 ASP NET 中 有资料了here http msdn microsoft com en us library ms178597 as
  • Django 1.9 弃用警告 app_label

    我刚刚更新到 Django v1 8 并在更新项目之前测试了本地设置 并且收到了以前从未见过的弃用警告 这对我来说也没有任何意义 我可能只是忽略了某些内容或误解了文档 Users neilhickman Sites guild ankylo
  • 使用 blockproc 或 im2col 在图像上重叠滑动窗口?

    我必须申请dct2到我的图像的小窗口 最好使用重叠窗口 我发现Matlab中有两个函数可以实现这一点blockproc and im2col 我也无法理解 希望得到一些澄清 blockproc可用于使用以下方法在滑动窗口上实现我的功能Bor
  • DateTimeFormatter 工作日似乎少了一位

    我正在将现有应用程序从 Joda Time 移植到 Java 8java time 我遇到了一个问题 解析包含 星期几 值的日期 时间字符串在单元测试中触发了异常 解析时 2016 12 21 20 50 25 十二月星期三 0000 3
  • 我的向量已排序,但我收到“序列未排序”错误

    是否存在以下情况 std sort fails 我有一个std vector
  • QtCreator 下的 clang++ 无法与 c++11 一起工作

    操作系统 OS X 10 8 1 QtCreator 2 6 2 命令行没问题 但 QtCreator 无法编译代码 include
  • SASS,调用 mixin 的正确方法是什么?

    我刚刚开始使用 SASS 我正在尝试弄清楚如何创建一个盒子阴影混合 我从另一个堆栈溢出帖子复制了这个 mixin mixin box shadow top left blur color inset webkit box shadow to
  • 在 Firefox 中隐藏 alt 标签

    根据默认行为 alt属性在图像渲染之前首次渲染 我在网格中显示 25 张图像 所以看起来有点尴尬alt首先显示属性 是否可以隐藏alt火狐浏览器的属性 Note alt在我的例子中 属性包含动态名称 在尝试了此处的所有其他方法后 我发现此方
  • 如果文件存在,则将文件复制为另一个名称

    我想将特定文件从电脑复制到 USB 我的代码 xcopy H Y C R C image1 jpeg G backup image jpeg 我想做以下事情 如果 G backup image1 jpeg 存在 则将 image jpeg