如何使用for循环编写批处理脚本,如下所示:
@echo off
for /l %%a in (1,1,100) do (
echo %%a
)
并在一行中获得输出,而不是:
1
2
3
4
5
..
..
发布于 2021-10-09 12:59:03
@echo off
for /l %%a in (1,1,100) do (
echo|set /p="%%a "
)
发布于 2021-10-09 12:42:09
对于您展示的用例,您可以只使用<nul set /p =%%a
。但是,如果您的实际用例涉及可能包含前导空格或=
字符的字符串,则可以使用另一种操作提示字符串的方法:
@echo off
Del "%TEMP%\output.~tmp" 2> nul
(Set \n=^^^
%= \n newline var. Do not modify =%)
Setlocal EnableExtensions DisableDelayedExpansion
:# EWN Echo without newline macro
:# Based on: https://www.dostips.com/forum/viewtopic.php?t=4213#p64718
Set EWN=For %%n in (1 2)Do If %%n==2 (%\n%
cmd /d /k ^< nul ^>^>"%TEMP%\output.~tmp"%\n%
Set "prompt="%\n%
) Else Set prompt=
:# Examples:
:# %EWN% Leading space
:# %EWN%= Leading equals
:# %EWN%= Escape requirements: ^& ^> ^< ^| %% ^^^ unbalanced dq: ^"
Cls
For /l %%i in (1 1 100)Do %EWN%%%i
Type "%TEMP%\output.~tmp"
Echo(
Pause
Endlocal
其他方法也可以在dostips上找到
https://stackoverflow.com/questions/69506613
复制相似问题