我有一个批处理文件,它将变量转换为全部大写字母......问题是如果变量中有一个空格,那么输出就会被拆分。如果变量(foldername)中有空格,我该如何将它变换为全部大写?
@REM This makes everything uppercase.
@ SETLOCAL ENABLEDELAYEDEXPANSION
@ SET _SAMPLE="%foldername%"
@ CALL :UCase _SAMPLE _RESULTS
@ ECHO.%_RESULTS%
@ CALL :LCase _SAMPLE _RESULTS
@ ECHO.%_RESULTS%
@ ENDLOCAL
@ GOTO:EOF
@ :LCase
@ :UCase
@ :: Converts to upper/lower case variable contents
@ :: Syntax: CALL :UCase _VAR1 _VAR2
@ :: Syntax: CALL :LCase _VAR1 _VAR2
@ :: _VAR1 = Variable NAME whose VALUE is to be converted to upper/lower case
@ :: _VAR2 = NAME of variable to hold the converted value
@ :: Note: Use variable NAMES in the CALL, not values (pass "by reference")
@ SET _UCase=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
@ SET _LCase=a b c d e f g h i j k l m n o p q r s t u v w x y z
@ SET _Lib_UCase_Tmp=!%1!
@ IF /I "%0"==":UCase" SET _Abet=%_UCase%
@ IF /I "%0"==":LCase" SET _Abet=%_LCase%
@ FOR %%Z IN (%_Abet%) DO SET _Lib_UCase_Tmp=!_Lib_UCase_Tmp:%%Z=%%Z!
@ SET %2=%_Lib_UCase_Tmp%
@REM GOTO:EOF
@REM
当我使用此代码尝试创建文件夹时,它给出了与变量中的单词一样多的文件夹,即:
top = folder =“TOP”
Hill Top = folder =“HILL”和folder =“TOP”
任何人的想法?
答案 0 :(得分:0)
事实证明它非常简单......在创建目录时只需在变量周围使用双引号
%foldername%= hello world
单引号: mkdir“%foldername%”创建一个文件夹“hello”和一个文件夹“world”
双引号: mkdir“”%foldername%“”使文件夹成为“hello world”
当我意识到这个简单的错误时,我感到非常愚蠢。