Windows写一个bat脚本:进入D:\0javaproject,获取所有文件夹的名称
时间: 2024-10-11 12:16:30 浏览: 33
在Windows环境下,你可以使用批处理(BAT)脚本来实现这个任务。下面是一个简单的例子,该脚本会打开命令提示符并导航到指定路径(D:\0javaproject),然后列出所有子文件夹的名称:
```batch
@echo off
setlocal enabledelayedexpansion
pushd D:\0javaproject
for /D %%i in (*) do (
echo %%~ni
)
popd
endlocal
```
解释一下脚本内容:
1. `@echo off` 命令关闭命令提示符的自动回显功能。
2. `setlocal enabledelayedexpansion` 是为了可以使用变量名的当前值,而不仅仅是其原始值。
3. `pushd D:\0javaproject` 进入到D:\0javaproject目录。
4. `for /D %%i in (*) do ( ... )` 遍历当前目录下的所有目录(`*` 匹配任意文件夹名,`/D` 表示只匹配目录)。`%%i` 是循环变量,`%%~ni` 只保留文件夹名称部分(去除了完整路径)。
5. `echo %%~ni` 打印出每个文件夹的名称。
6. `popd` 返回上一级目录,即回到初始目录。
运行此脚本,会在命令行窗口中看到D:\0javaproject下所有文件夹的名称列表。
相关问题
Windows写一个bat脚本:进入D:\0javaproject,获取第一个文件夹的名称
要在Windows上编写一个批处理脚本来进入特定目录并获取第一个文件夹的名称,你可以创建一个`.bat`文件,内容如下:
```batch
@echo off
setlocal enabledelayedexpansion
pushd D:\0javaproject
if not "%cd%" == "" (
set first_folder=!cd:~0,-1!
) else (
echo 没有找到文件夹! >&2
exit /b 1
)
echo 首个文件夹的名称: %first_folder%
popd
```
这个脚本做了以下几件事:
1. `@echo off` 关闭命令行的回显功能,防止看到多余的提示。
2. `setlocal enabledelayedexpansion` 开启延迟环境变量扩展,以便在字符串操作中动态更改变量。
3. `pushd D:\0javaproject` 进入指定的目录。
4. 使用`if not "%cd%" == ""` 判断当前是否是在期望的目录,如果不是,则输出错误信息并退出。
5. 如果在正确的目录,`set first_folder=!cd:~0,-1!` 从当前目录路径中提取出最后一个部分(即文件夹名),去掉最后的反斜杠。
6. 最后,`echo 首个文件夹的名称:` 和 `%first_folder%` 输出结果,并使用`popd` 回到之前的目录。
阅读全文