Windows batch: echo without new line

后端 未结 18 1437
失恋的感觉
失恋的感觉 2020-11-22 04:01

What is the Windows batch equivalent of the Linux shell command echo -n which suppresses the newline at the end of the output?

The idea is to write on t

18条回答
  •  后悔当初
    2020-11-22 04:50

    You can suppress the new line by using the set /p command. The set /p command does not recognize a space, for that you can use a dot and a backspace character to make it recognize it. You can also use a variable as a memory and store what you want to print in it, so that you can print the variable instead of the sentence. For example:

    @echo off
    setlocal enabledelayedexpansion
    for /f %%a in ('"prompt $H & for %%b in (1) do rem"') do (set "bs=%%a")
    cls
    set "var=Hello World! :)"
    set "x=0"
    
    :loop
    set "display=!var:~%x%,1!"
    nul
    set /a "x=%x% + 1"
    if "!var:~%x%,1!" == "" goto end
    goto loop
    
    :end
    echo.
    pause
    exit
    

    In this way you can print anything without a new line. I have made the program to print the characters one by one, but you can use words too instead of characters by changing the loop.

    In the above example I used "enabledelayedexpansion" so the set /p command does not recognize "!" character and prints a dot instead of that. I hope that you don't have the use of the exclamation mark "!" ;)

提交回复
热议问题