BAT 获取当前目录

BAT是Windows下的脚本语言之一,通过编写一些BAT批处理文件,我们可以完成一些简单但重复的工作。这篇文章主要介绍如何使用BAT获取当前目录。

一、获取当前目录的基本方法

要想获取当前目录,我们可以使用如下命令:

@echo off
echo 当前目录:%cd%

代码中的 %cd% 是一个环境变量,表示当前目录。通过 echo 命令输出即可。

下面是完整的代码,保存为 get-curr-dir.bat 后双击即可运行:

@echo off
echo 当前目录:%cd%
pause

执行该文件后,命令行窗口会显示当前目录。同时会停顿,直到用户按下任意键退出。

二、去掉当前目录中的引号

当当前目录中包含有空格等特殊字符时,命令行窗口会将其用双引号括起来,如下所示:

当前目录:"C:\Program Files"

为了进一步处理当前目录,我们需要去掉这些双引号,可以使用如下代码:

@echo off
setlocal EnableDelayedExpansion
set "dir=%cd:"=%"
echo 当前目录:%dir%
pause

代码中使用 setlocal 开启了局部变量的设置功能。然后使用 EnableDelayedExpansion 选项开启了延迟环境变量扩展,因为后面需要使用 !cd! 命令。

接下来,把 %cd% 的值传给 dir 变量,同时使用替换方式把双引号去掉。最后使用 echo 命令输出即可。

三、获取当前目录的短文件名

在Windows系统下,每个文件都有一个长文件名和一个短文件名。短文件名是系统自动生成的一个类似于 8.3 的格式,方便一些老的应用程序调用。如果要获取当前目录下文件的短文件名,可以使用如下代码:

@echo off
setlocal EnableDelayedExpansion
set "dir=%cd:"=%"
for /f %%a in ('dir /x /ad /b "!dir!"') do (
    set "dir=%%a"
)
echo 当前目录:%dir%
pause

代码中使用 for 命令遍历当前目录下的所有目录(/ad),并且使用 /x 参数显示它们的短文件名。然后使用 /b 参数把输出结果转换成纯文本格式。

由于目录名可能包含空格,因此需要使用延迟环境变量扩展和双引号进行引用。

由于 for 命令的工作方式,%dir% 的值会不断被修改为当前目录下遍历到的每一个目录的短文件名,直到最后一次遍历完毕。因此,只需要在遍历结束后输出 %dir% 的值即可得到当前目录的短文件名。

四、获取当前目录中的所有文件

如果要列出当前目录下的所有文件,可以使用如下代码:

@echo off
setlocal EnableDelayedExpansion
set "dir=%cd:"=%"
for /f "delims=" %%a in ('dir /b "!dir!"') do (
    echo %%a
)
pause

代码中的 for 命令会遍历当前目录下的所有文件,并使用 echo 命令输出文件名。

需要注意的是,for 命令默认会以空格为分隔符,因此需要使用 “delims=” 参数指定分隔符为空,否则文件名中的空格会被切分。

五、获取当前目录中特定类型的文件

如果要只列出当前目录下的某一种特定类型的文件,可以使用如下代码:

@echo off
setlocal EnableDelayedExpansion
set "dir=%cd:"=%"
for /f "delims=" %%a in ('dir /b "!dir!\*.txt"') do (
    echo %%a
)
pause

代码中的 for 命令会遍历当前目录下的所有以 .txt 结尾的文件,并使用 echo 命令输出文件名。

需要注意的是,dir 命令使用了通配符 *,因此不同的文件类型需要修改命令中的通配符。

六、总结

通过这篇文章的学习,我们掌握了如何使用BAT获取当前目录的方法,并且学习了如何处理带有特殊字符的目录名、如何获取当前目录的短文件名、如何列出当前目录下的所有文件以及如何只列出特定类型的文件。这些方法将有助于我们更好地处理文件操作,并提高工作效率。

原创文章,作者:XIHIS,如若转载,请注明出处:https://www.506064.com/n/368662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XIHISXIHIS
上一篇 2025-04-12 01:13
下一篇 2025-04-12 01:13

相关推荐

  • Rclone复制所有目录

    如果你需要将本地文件复制到云端,或者从云端复制文件到本地,Rclone是一个非常好的选择。本文将介绍如何使用Rclone复制所有目录。 一、安装Rclone 首先,你需要在你的机器…

    编程 2025-04-29
  • 二级考级舞蹈大全目录

    本文将从以下多个方面对二级考级舞蹈大全目录进行详细阐述。 一、目录结构 二级考级舞蹈大全目录主要分为三级,即一级目录、二级目录和三级目录。其中,一级目录为舞蹈类型,二级目录为舞蹈名…

    编程 2025-04-29
  • Python目录怎么打开

    Python是一种高级编程语言,以其易读、易扩展和简洁高效的特征,目前得到了众多程序开发者的认可。Python的应用已经扩展到了人工智能、Web开发、数据分析、自动化测试等领域。本…

    编程 2025-04-28
  • 不从skel目录复制文件的方法

    对于开发工程师而言,我们经常需要使用一些预定义的目录结构来组织我们的项目文件。skel作为一个经典的目录结构,包含了许多常用的文件和目录。 一、了解skel目录 skel目录通常位…

    编程 2025-04-28
  • Python保存文件到指定目录

    在Python编程中,我们有时需要将生成的文件保存到指定目录中。本文将从以下几个方面详细介绍如何使用Python保存文件到指定目录。 一、使用os模块保存文件到指定目录 在Pyth…

    编程 2025-04-28
  • Python获取py文件目录及其应用

    本文将从多个方面介绍Python获取py文件目录及其应用,包括获取py文件所在目录和父目录、获取某个路径下所有py文件、查找某个目录下特定文件名的py文件、以及将当前目录及其子目录…

    编程 2025-04-27
  • Docker挂载目录–graph用法介绍

    本文将从如下几个方面详细阐述Docker挂载目录–graph: 一、基本概念 在Docker中,镜像是由一系列只读层组成的文件系统。当我们启动一个容器时,Docker会…

    编程 2025-04-27
  • 网站目录扫描

    一、目录扫描是什么 目录扫描是一种常见的网络安全评估技术,通常用于评估一个网站或者系统的安全性。它的原理是通过枚举目标系统中的文件和目录,寻找系统存在的漏洞和其他安全问题。 在目录…

    编程 2025-04-25
  • 深入理解 Vue 目录结构

    Vue 是一款由 Evan You 开发的流行 JavaScript 框架。Vue 具有响应式视图和组件化的思想,让开发者可以轻松构建交互式的 Web 应用。那么在 Vue 开发中…

    编程 2025-04-24
  • Linux复制文件夹下所有文件到指定目录

    一、使用cp命令复制单个文件 在Linux系统中,我们可以使用cp命令来复制单个文件,具体命令如下: cp 源文件 目标文件 其中,源文件是要复制的文件,目标文件是复制后的文件名或…

    编程 2025-04-24

发表回复

登录后才能评论