for %%I in ("%current_dir%") do set "parent_dir=%%~dpI"
时间: 2023-11-11 16:02:24 浏览: 26
这段代码是用来获取当前目录的父级目录的路径。
解释如下:
- `%%I`是在for循环中定义的一个变量。
- `"%current_dir%"`是当前目录的路径,被放在双引号中是为了防止路径中有空格等特殊字符导致出错。
- `do set "parent_dir=%%~dpI"`是for循环中的执行语句,其中`set`命令用来设置一个环境变量,`parent_dir`是环境变量的名称,`%%~dpI`则是获取`%%I`变量所代表的路径的父级目录的路径。
在执行完这行代码后,环境变量`parent_dir`中就存储了当前目录的父级目录的路径。
相关问题
for %%I in ("%current_dir%") do set "parent_dir=%%~dpI" for %%I in ("%parent_dir%") do set "grandparent_dir=%%~dpI"不起作用
这段代码是批处理脚本的语法,它的作用是获取当前目录的上级目录和上级目录的上级目录,并将它们保存到`parent_dir`和`grandparent_dir`变量中。
如果这段代码在批处理脚本中运行,应该是可以正常工作的。但是如果你将这段代码直接复制到命令行中运行,会出现语法错误,因为命令行和批处理脚本的语法是不同的。
如果你想在命令行中获取当前目录的上级目录和上级目录的上级目录,可以按照以下步骤操作:
1. 打开命令提示符窗口,进入当前目录;
2. 执行以下命令获取当前目录的上级目录路径并保存到`parent_dir`变量中:
```
for %I in (.) do set "parent_dir=%~dpI"
```
3. 执行以下命令获取上级目录的上级目录路径并保存到`grandparent_dir`变量中:
```
for %I in ("%parent_dir%") do set "grandparent_dir=%~dpI"
```
这样就可以在命令行中获取当前目录的上级目录和上级目录的上级目录了。
bat for %%I in ("%current_dir%") do set "parent_dir=%%~dpI" for %%I in ("%parent_dir%") do set "grandparent_dir=%%~dpI"不起作用
这段代码是批处理脚本的语法,它的作用是获取当前目录的上级目录和上级目录的上级目录,并将它们保存到`parent_dir`和`grandparent_dir`变量中。
如果这段代码在批处理脚本中运行,应该是可以正常工作的。但如果你在命令行中直接运行这段代码,会出现语法错误,因为命令行不支持`for`循环的语法。
如果你想在命令行中获取当前目录的上级目录和上级目录的上级目录,可以按照以下步骤操作:
1. 打开命令提示符窗口,进入当前目录;
2. 执行以下命令获取当前目录的上级目录路径并保存到`parent_dir`变量中:
```
for %I in (.) do set "parent_dir=%~dpI"
```
3. 执行以下命令获取上级目录的上级目录路径并保存到`grandparent_dir`变量中:
```
for %I in ("%parent_dir%") do set "grandparent_dir=%~dpI"
```
这样就可以在命令行中获取当前目录的上级目录和上级目录的上级目录了。