windows - 用于复制和重命名文件的批处理脚本文件
问题描述
我正在编写批处理脚本,如果位置 B 中已经存在相同的文件,我将使用该脚本将文件从位置 A 复制到位置 B,并从位置 A 重命名源文件。
目前我在堆栈上使用另一个主题的片段,但它不适用于子文件夹中的文件,任何人都可以帮助我使用下面的代码,以便它适用于两个位置的所有文件和子目录?非常感谢!
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET sourcedir="D:\TEST\FROM"
SET destdir="D:\TEST\TO"
SET /a count=0
for %%c in (%sourcedir%\*.*) do (
CALL :select
ECHO copy "%%c" "%destdir%\%%~nc_!count!%%~xc" /s
)
GOTO :EOF
:select
SET /a count+=1
IF EXIST "%destdir%\%%c" GOTO select
GOTO :eof
解决方案
for
用以下循环替换您的for
循环:
for /R "%sourcedir%" %%c in (*.*) do (what you like)
另外,你为什么想要下面的代码?
copy "%%c" "%destdir%\%%~nc_!count!%%~xc" /s
只是copy "%%c" %destdir%
更一般地,您可以编写:
@ECHO OFF
SET sourcedir="D:\TEST\FROM"
SET destdir="D:\TEST\TO"
:: SET /a count=0
for /R "%sourcedir%" %%c in (*.*) do (
:: SET /a count+=1
IF NOT EXIST "%destdir%\%%c" (
echo copy "%%c" %destdir%
)
)
希望您对此感到满意,可能会重复使用子文件夹循环的 Windows 批处理文件
推荐阅读
- python - 包中断中的 Python 相对导入
- parsing - 检测文本中的联系人和查看信息
- angular - 角度反应形式在服务中返回未定义的值
- c - 将 3D 数组作为参数 C 传递时丢失一些值
- jquery - 如何使用 Ajax 回调数据填充 html 输入元素
- flutter - 如何将渐变添加到 SliverAppBar,但仅在它折叠时?
- python - 带有 Django 的 ScrapyD 在一段时间后停止运行
- jspdf-autotable - 函数 didParseCell 被调用两次
- java - 从 Java 中的 URL 解析复杂的 XML
- javascript - 自动完成未从对象属性Angular中检测到正确的值