我有一个包含目录路径列表的文件。我想在这些位置创建目录。路径有系统环境变量,设置为系统属性->环境变量。就像这样:
$COMPLETE_DIR/type1
$COMPLETE_DIR/type1
$COMPLETE_DIR/type1
$INCOMPLETE_DIR/type2
$INCOMPLETE_DIR/type3
$INCOMPLETE_DIR/type4
我做了一个小循环,用来创建如上所示的目录:
@echo off
setlocal enabledelayedexpansion
set "input_file=FolderList.txt"
for /F "usebackq delims=" %%a in ("%input_file%") do (
set "directory_name=%%~a"
echo Creating directory: !directory_name!
if exist "!directory_name!" (
echo Directory already exists: !directory_name!
) else (
mkdir "!directory_name!" || (
echo Failed to create directory: !directory_name!
)
)
)
echo All directories created or checked successfully.
pause
但这并没有扩展环境变量。我试着关闭延迟扩展,但是for循环中断,只创建了一个目录。如何部分延迟扩展?
2条答案
按热度按时间wz3gfoph1#
您的文件有 * 不 * 批处理文件“环境变量”...在继续之前,假设变量的名称只是
COMPLETE_DIR
而不是$COMPLETE_DIR
(这是在其他语言中访问变量值的方式)。如果您将文件更改为:
...然后你可以使用你的变量与你完全相同的代码。
这一行:
...暗示执行此操作(用第一行read替换
%%~a
后):当然,之后COMPLETE_DIR环境变量会像往常一样通过Delayed Expansion扩展!
mqxuamgl2#
尝试使用上面的脚本