使用批处理获取当前目录所有文件及子目录路径
5星 · 超过95%的资源 需积分: 34 136 浏览量
更新于2024-09-16
收藏 4KB TXT 举报
"这篇文章主要介绍了如何使用批处理脚本来获取当前目录下所有文件的完整路径。批处理是Windows操作系统中的DOS命令行环境下的一种程序执行方式,通过编写简单的脚本文件,可以自动化执行一系列命令。这里提供的批处理脚本不仅可以列出当前目录下的文件路径,还能判断指定文件是否存在,并将结果输出到文本文件中。"
批处理是Windows系统中的一种自动化工具,允许用户通过编写.bat或.cmd格式的脚本来执行一系列DOS命令。在本文提到的批处理脚本中,主要涉及以下几个知识点:
1. **for /f** 命令:这是批处理中用来循环处理文件或命令输出的命令。在这个例子中,`for /f "delims=" %%i in ('dir/a/s/b/on*.*') do (...)` 是用来遍历当前目录及其子目录下所有非隐藏(/a)的文件(/b),并将每个文件名赋值给变量`%%i`。
2. **set** 命令:用于设置环境变量。在脚本中,`set file=%%~fi` 和 `set ùfile=!file:%cd%/=!"` 分别用来存储文件的完整路径和去除当前目录前缀后的路径。
3. **delayed expansion**:通过`setlocal EnableDelayedExpansion` 开启延迟环境变量扩展,使得在for循环中能够修改并使用环境变量。
4. **字符串替换**:`setfile=!file:/=/!` 是用来替换路径中的反斜杠(/)为Windows路径分隔符(\),以适应批处理内部的处理。
5. **echo** 命令:将处理后的文件路径写入到.txt文件中,如 `echo!file!>>.txt`。
6. **if exist** 语句:用于检查文件或目录是否存在。例如,`if exist "%~f1"` 判断指定的文件是否存在于当前目录。
7. **for /r /d** 命令:用于递归地遍历目录树,`for /r /d %%d in (*.*) do (...)` 会查找所有子目录下的目录(/d)。
8. **call** 语句:调用批处理脚本内的标签,如 `call:next"%%i"` 调用名为`next`的子过程。
9. **标签(Label)**:如 `:next`,用于组织批处理脚本的流程控制。
10. **findstr** 命令:在文本中搜索特定的字符串,如 `echo%%jpg:%cd1%=%%|findstr.` 用于在字符串中查找特定字符并提取结果。
11. **for /?** 语法:`FOR %%a IN (C:D:E:F:) DO cd/d %%a` 这个循环会遍历C盘到F盘,然后改变当前目录到每个盘符的根目录。
12. **pause** 命令:暂停批处理的执行,等待用户按下任意键后再继续。
这些批处理技术可用于自动化文件管理和日志记录等多种场景,极大地提高了操作效率。通过理解和运用这些命令,用户可以编写更复杂的批处理脚本来解决日常的系统管理任务。
2019-07-17 上传
2023-12-26 上传
2012-03-22 上传
2024-10-30 上传
2023-12-26 上传
2023-12-26 上传
2023-12-26 上传
shuimuhuaqing
- 粉丝: 1
- 资源: 9
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析