我如何撰寫一個批處理腳本,像這樣的 for 回圈:
@echo off
for /l %%a in (1,1,100) do (
echo %%a
)
并在一行中獲取輸出,而不是:
1
2
3
4
5
..
..
uj5u.com熱心網友回復:
對于您顯示的用例,您可以使用,<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 中找到
uj5u.com熱心網友回復:
@echo off
for /l %%a in (1,1,100) do (
echo|set /p="%%a "
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312623.html
上一篇:如何使用批處理腳本重命名具有多種條件的不同子目錄中的PNG檔案?
下一篇:過濾掉批處理檔案中回圈內的文本
