7 windows batch-file echo windows-server-2003
我看了你的数据库之前的问题,我没有尝试答案,但我试试.
我想写下面的代码:
echo Executing backup....
backup procedure
echo Ok
Run Code Online (Sandbox Code Playgroud)
但输出应该是:
Executing backup... Ok
Run Code Online (Sandbox Code Playgroud)
那可能吗?!
我想你正在使用dos/nt-batch.
可以使用set/p命令,因为set/p不会打印CrLf
set /p "=Executing backup...." <nul
echo OK
Run Code Online (Sandbox Code Playgroud)
也可以用CR字符擦除该行.重要的是要知道在set/p前面的空格字符被忽略(在Vista中,而不是在XP中),所以!cr!必须放在后期或末尾.CR只能与delayedExpansion一起显示,因为%cr%有效,但CR字符在百分比扩展阶段(或直接在此阶段之后)被删除,但不在延迟扩展阶段.
仅使用一行显示的计数器示例
@echo off
setlocal EnableDelayedExpansion EnableExtensions
call :CreateCR
for /l %%n in (1,1,10000) do (
set /P "=Count %%n!CR!" <nul
)
echo(
goto :eof
:CreateCR
rem setlocal EnableDelayedExpansion EnableExtensions
set "X=."
for /L %%c in (1,1,13) DO set X=!X:~0,4094!!X:~0,4094!
echo !X! > %temp%\cr.tmp
echo\>> %temp%\cr.tmp
for /f "tokens=2 usebackq" %%a in ("%temp%\cr.tmp") do (
endlocal
set cr=%%a
goto :eof
)
goto :eof
Run Code Online (Sandbox Code Playgroud)
编辑:解释,如何cr创建变量(完成一个技巧)
将变量设置X为单个点(字符本身不重要)后,通过以下方式重复变为8188个字符for /L %%c in (1,1,13) DO set X=!X:~0,4094!!X:~0,4094!
然后将变量,两个空格以及CR和LF都回显到一个文件中echo !X! > %temp%\cr.tmp(注意!X!和之间的两个空格>和自然行结尾在内部回应修正)
我们现在有8192个字符,但数据缓冲区只能容纳8191个字符,因此最后一个字符(换行符)将被删除!
在下一行中echo\>> %temp%\cr.tmp,另一个CR/LF集合被附加到文件中(\在命令中只是输出没有任何条形的回车和换行,因为echo它的自己将输出ECHO is ON/OFF),这很重要,因为单个CR无法读取一行的结尾(稍后).
所以该文件现在包含 <8188 .'s><SPACE><SPACE><CR><CR><LF>
在for /f "tokens=2 usebackq" %%a in ("%temp%\cr.tmp") do读取第二令牌时,delimters是标准的空间和标签上,所以第二令牌是只有一个CR,如以下CR/LF作为标准的行结束除去.
最后,endlocal用于返回到环境,而临时变量X,c和a现有的(如同endlocal在括号中,它允许设置cr前endlocal,其实需要在括号结束影响(也可以写成for /f "tokens=2 usebackq" %%a in ("%temp%\cr.tmp") do endlocal&set cr=%%a&goto :eof)
另外
这是我创建CR字符的第一种方法,但它需要一些时间和一个临时文件.
后来我看到了一种从copy /z命令中检索CR的简单方法.
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
Run Code Online (Sandbox Code Playgroud)
在 Posix 系统 (Linux) 上试试这个
echo -n "Executing backup.... "
echo -n "backup procedure "
echo "Ok"
Run Code Online (Sandbox Code Playgroud)
在 Windows 上要困难得多。你将需要使用这样的东西:
@echo off
echo|set /p ="Executing backup...."
echo|set /p =" backup procedure"
Run Code Online (Sandbox Code Playgroud)
检查这篇文章:http : //www.pcreview.co.uk/forums/showpost.php?s= 1a20b16775d915998b30bd76a0ec5d35& p= 4432915& postcount=7。