Windows批处理:在字符串中,如何在字符之间添加空格?
在批处理中,我有一个路径%cd%,例如c:\docu 我需要在一个新的环境变量c:\d o c u中生成Windows批处理:在字符串中,如何在字符之间添加空格?,windows,batch-file,Windows,Batch File,在批处理中,我有一个路径%cd%,例如c:\docu 我需要在一个新的环境变量c:\d o c u中生成 我该怎么办?谢谢制作一个名为AddSpace.bat的bat文件: AddSpace.bat 使用 NB如您所见,它还将加倍空格。这很容易修复,只需添加: if "%c%"==" " goto loop 如果“%c%”转到结束,则紧跟在之后 @echo off call :strlen0 cd len echo %len% set "final=" setlocal Enable
我该怎么办?谢谢制作一个名为AddSpace.bat的bat文件: AddSpace.bat 使用 NB如您所见,它还将加倍空格。这很容易修复,只需添加:
if "%c%"==" " goto loop
如果“%c%”转到结束,则紧跟在之后
@echo off
call :strlen0 cd len
echo %len%
set "final="
setlocal EnableDelayedExpansion
for /l %%# in (0,1,%len%) do (
set "letter_with_space=!cd:~%%#,1! "
set final=!final!!letter_with_space!
)
endlocal && (
set "final=%final%"
)
echo %final%
exit /b 0
:strlen0 StrVar [RtnVar]
setlocal EnableDelayedExpansion
set "s=#!%~1!"
set "len=0"
for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%N,1!" neq "" (
set /a "len+=%%N"
set "s=!s:~%%N!"
)
)
endlocal&if "%~2" neq "" (set %~2=%len%) else echo %len%
exit /b
这是通过%cd%
完成的,因为这是您要求的,但可以通过任何变量完成。strlen
子例程取自此处:谢谢,我已经在批处理文件中。在代码的中间,我有%CD%,这是一个路径,我必须适应代码,使%CD%变成空格,我已经尝试了你的代码,但似乎不起作用。
if "%c%"==" " goto loop
@echo off
call :strlen0 cd len
echo %len%
set "final="
setlocal EnableDelayedExpansion
for /l %%# in (0,1,%len%) do (
set "letter_with_space=!cd:~%%#,1! "
set final=!final!!letter_with_space!
)
endlocal && (
set "final=%final%"
)
echo %final%
exit /b 0
:strlen0 StrVar [RtnVar]
setlocal EnableDelayedExpansion
set "s=#!%~1!"
set "len=0"
for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%N,1!" neq "" (
set /a "len+=%%N"
set "s=!s:~%%N!"
)
)
endlocal&if "%~2" neq "" (set %~2=%len%) else echo %len%
exit /b