bat脚本递归文件夹中的文件
时间: 2023-08-08 22:05:27 浏览: 302
可以使用如下的bat脚本递归文件夹中的文件:
```
@echo off
setlocal enabledelayedexpansion
set "folder=%~1"
if not defined folder set "folder=%cd%"
set "filter=%~2"
if not defined filter set "filter=*.*"
for /r "%folder%" %%i in (%filter%) do (
echo %%i
)
```
在命令行中执行上述脚本时,需要提供两个参数:
1. 文件夹路径:要递归查找的文件夹路径,如果不指定则默认为当前目录。
2. 文件过滤器:要查找的文件的过滤器,如果不指定则默认为所有文件(`*.*`)。
例如,执行以下命令可以递归查找`C:\test`文件夹中的所有`.txt`文件:
```
recursive.bat C:\test *.txt
```
相关问题
bat脚本删除文件夹里面所有txt
### 回答1:
可以使用以下脚本实现删除文件夹中所有txt文件:
```
del /s /q "文件夹路径\*.txt"
```
其中,del是删除命令,/s表示递归删除子文件夹中的文件,/q表示安静模式,不需要确认。"文件夹路径"需要替换成实际的文件夹路径。
### 回答2:
可以使用bat脚本来删除文件夹中的所有txt文件。以下是一个示例脚本:
```batch
@echo off
set folder="C:\目标文件夹的路径"
if exist %folder% (
for /r %folder% %%a in (*.txt) do (
echo Deleting %%a
del "%%a"
)
echo All txt files have been deleted.
) else (
echo The folder %folder% does not exist.
)
pause
```
以上脚本首先定义了一个变量`folder`,用来指定目标文件夹的路径。然后通过`if exist`语句检查目标文件夹是否存在。如果存在,会使用`for /r`命令遍历目标文件夹(包括子文件夹)中的所有txt文件,并使用`del`命令将其删除。在删除每个文件前,会打印出文件名作为提示信息。最后,会输出一条提示信息表示所有txt文件已删除。如果目标文件夹不存在,会输出相应的提示信息。
你可以将目标文件夹的路径替换为自己想要操作的文件夹路径,并保存为bat文件,运行即可实现删除文件夹中所有txt文件的功能。
### 回答3:
可以通过以下bat脚本来删除文件夹里面所有的txt文件:
```
@echo off
setlocal enabledelayedexpansion
set folder="文件夹路径"
for /r %folder% %%i in (*.txt) do (
del "%%i"
echo 删除文件: %%i
)
echo 删除完毕!
pause
```
你需要将"文件夹路径"替换为你想要删除txt文件的文件夹路径。
使用BAT批量获取文件夹下文件路径
你可以使用以下代码来批量获取一个文件夹下所有文件的路径:
```batch
@echo off
setlocal EnableDelayedExpansion
set "folder=%~1"
if not defined folder set "folder=%cd%"
for /r "%folder%" %%F in (*) do (
set "file=%%~fF"
echo !file!
)
```
该脚本会递归遍历指定的文件夹并输出每个文件的完整路径。你可以将其保存为一个 .bat 文件并将需要遍历的文件夹作为参数传递给该脚本。例如,将该脚本保存为 `get_files.bat` 并执行 `get_files.bat C:\Folder\` 来获取 `C:\Folder\` 文件夹下所有文件的路径。