如何用批处理实现文件夹及其子文件夹内的指定后缀文件复制到另外一个指定文件夹
时间: 2023-09-18 13:16:25 浏览: 57
可以使用下面的批处理代码来实现:
```
@echo off
set "source_folder=C:\FolderA"
set "destination_folder=C:\FolderB"
set "file_extension=.txt"
for /R "%source_folder%" %%a in (*%file_extension%) do (
mkdir "%destination_folder%\%%~pa" 2>nul
copy "%%a" "%destination_folder%\%%~pa"
)
echo Copied all %file_extension% files from %source_folder% to %destination_folder%.
pause
```
这个批处理程序首先设置源文件夹路径(source_folder)、目标文件夹路径(destination_folder)和要复制的文件扩展名(file_extension)。然后,它使用一个循环来遍历源文件夹及其子文件夹中的所有符合条件的文件(即具有指定扩展名的文件)。对于每个符合条件的文件,它将在目标文件夹中创建与其父文件夹相同的文件夹结构,并将文件复制到该文件夹中。
请注意,此批处理程序的运行时间取决于源文件夹中包含的文件数量和目标文件夹中的文件夹数量。
希望这可以帮助你实现你的目标!
相关问题
写一个windows批处理文件,实现拷贝文件夹中图片到指定目录,并去掉后缀
可以使用以下批处理代码实现:
```
@echo off
set source_folder="C:\path\to\source\folder"
set destination_folder="C:\path\to\destination\folder"
for /r %source_folder% %%f in (*.jpg,*.png,*.gif) do (
set "file=%%f"
set "file_name=!file:%source_folder%\=!"
set "file_name=!file_name:~1,-4!"
copy "%%f" "%destination_folder%\!file_name!"
)
echo Copy complete!
pause
```
解释:
- `@echo off` 命令关闭命令行的回显。
- `set` 命令用于设置变量,`source_folder` 是源文件夹路径,`destination_folder` 是目标文件夹路径。
- `for /r` 命令用于循环遍历源文件夹及其子文件夹中的所有文件,`(*.jpg,*.png,*.gif)` 表示只处理图片文件。
- 在循环体中,使用 `set` 命令将文件路径转换为文件名,并去掉后缀。
- 使用 `copy` 命令将文件复制到目标文件夹中,并使用转换后的文件名。
- `echo` 命令输出提示信息。
- `pause` 命令暂停程序,等待用户按下任意键继续。
写一个遍历删除当前文件夹及子文件中所有后缀为.dcu或~pas的批处理
以下是一个可以遍历删除当前文件夹及子文件中所有后缀为.dcu或~pas的批处理代码:
```
@echo off
setlocal EnableDelayedExpansion
set "searchPath=%cd%"
echo Deleting .dcu and ~pas files under %searchPath% ...
for /r "%searchPath%" %%f in (*.dcu, *~pas) do (
del "%%f"
echo Deleted "%%f"
)
echo All .dcu and ~pas files have been deleted.
pause
```
将以上代码复制到文本编辑器中,然后将其保存为 .bat 文件,双击运行即可。请注意,此代码将删除指定文件夹及其子文件夹中所有后缀为 .dcu 或 ~pas 的文件,因此请确保在运行之前备份重要文件。