我是批处理编程的新手。问题是我在2个变量中都有一个路径和一个新文件夹名称,因此我想将其连接起来并在该结果路径中创建一个新文件夹。我尝试了很多事情,但没有任何效果。请帮忙
我尝试了这段代码
@echo off
setlocal EnableDelayedExpansion
set ver=project
set spath=d:\a\svn\
set path=!%spath%%ver%!
mkdir %path%
pause
endlocal
请勿将其path
用作环境变量的名称,因为默认情况下已经定义了这种环境变量,并且具有非常重要的意义,请参见以下内容的答案:“ sort”未被识别为内部或外部命令,可操作程序或批处理文件?
要连接两个环境变量值,只需在将值分配给两个环境变量之一或新的环境变量时引用这两个环境变量即可。
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "ProjectVersion=project"
set "SvnPath=d:\a\svn\"
set "ProjectPath=%SvnPath%%ProjectVersion%"
mkdir "%ProjectPath%"
pause
endlocal
另请参见有关在命令行上使用“ set var = text”后为什么没有字符串与“ echo%var%”输出的答案?出于对set "variable=value"
字符串值进行变量赋值(即命令SET的参数字符串)双引号的原因。
此处实际上不需要命令SETLOCAL和ENDLOCAL。
可能还有:
@echo off
set "ProjectVersion=project"
set "SvnPath=d:\a\svn\"
set "ProjectPath=%SvnPath%%ProjectVersion%"
mkdir "%ProjectPath%" 2>nul
if not exist "%ProjectPath%\" echo Failed to create directory "%ProjectPath%" & pause & goto :EOF
上面的批处理文件通过将STDERR重定向到设备NUL来抑制任何错误消息,从而创建目录。如果目录已经存在或由于NTFS权限拒绝为当前用户创建文件夹或目录路径中存在目录名的文件而无法创建目录,则输出错误消息,例如,存在一个文件与名称project
在目录d:\a\svn
或者是有文件svn
的目录d:\a
。执行命令MKDIR后,在目录路径后附加带反斜杠的下一个命令将检查目录是否存在,并在目录不存在时输出带有PAUSE和下一个退出批处理文件的错误消息。
另请阅读有关使用命令重定向运算符的Microsoft文章,以获取有关Windows XP批处理文件的说明;2>nul
以及使用Windows批处理文件的多行单行代码,以获取有关&
运算符的解释。
为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
echo /?
endlocal /?
goto /?
if /?
mkdir /?
pause /?
set /?
setlocal /?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句