nul cd E:\PIX_LOG del syslog.log333 choice /t 1 /d y /n >nul ren syslog.log222 syslog..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

重命名程序日志--批處理延時啟動的幾個方法

發(fā)布時間:2020-04-06 14:24:51 來源:網(wǎng)絡(luò) 閱讀:628 作者:akliuqi1984 欄目:系統(tǒng)運維

@echo off

taskkill /f /im "3CSyslog.EXE"

choice /t 1 /d y /n >nul

cd E:\PIX_LOG

del syslog.log333

choice /t 1 /d y /n >nul

ren syslog.log222 syslog.log333

choice /t 1 /d y /n >nul

ren syslog.log111 syslog.log222

choice /t 1 /d y /n >nul

ren syslog.log000 syslog.log111

choice /t 1 /d y /n >nul

ren syslog.log syslog.log000

choice /t 1 /d y /n >nul

start "" "E:\3CSyslog.EXE"

choice /t 5 /d y /n >nul


批處理延時啟動的幾個方法
方法一:ping
缺點:時間精度為1秒,不夠精確
Cmd代碼 收藏代碼
@echo off
@ping 127.0.0.1 -n 6 > nul
start gdh.txt

方法二:vbs start /wait
缺點:生成臨時文件
優(yōu)點:時間精度為0.001秒,精度高
Cmd代碼 收藏代碼
@echo off
echo wscript.sleep 5000 > sleep.vbs
start /wait sleep.vbs
start gdh.txt
del /f /s /q sleep.vbs

方法三:vbs cscript
Cmd代碼 收藏代碼
@echo off
echo wscript.sleep 5000 > sleep.vbs
@cscript sleep.vbs > nul
start gdh.txt
del /f /s /q sleep.vbs

方法四:choice
優(yōu)點:時間精確,CPU占用低,是最佳選擇
Cmd代碼 收藏代碼
@echo off
choice /t 5 /d y /n > nul
start gdh.txt

方法五:for+set+if,時間精度為0.01秒
缺點:CPU占用高,語句過長,不常用
Cmd代碼 收藏代碼
@echo off
setlocal enableextensions
echo %time%
call :ProcDelay 500
echo %time%
start gdh.txt
:ProcDelay delayMSec
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start
=%%h%%i%%j%%k
:procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now
=%%h%%i%%j%%k
set /a diff=%now%-%start%
if %diff
% LSS %1 goto _procwaitloop
endlocal & goto :EOF

我使用的是這個批處理,唯一不好就是有窗口
Cmd代碼 收藏代碼
@echo off
:: 模擬進(jìn)度,有剩余時間、已完成進(jìn)度、進(jìn)度條的顯示
:: code by
color 1f
title.
mode con lines=10
rem 進(jìn)度條 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是總數(shù)
set all=10
set time=%all%
:show

:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check

:2

cls
echo 進(jìn)度: %n% / %all% ★程序正在啟動請稍等★ 剩余時間:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%

if %work%==100 goto end

ping 127.1 -n 2 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
endlocal

:end
@echo off
start C:\Progra~1\tools\xsdy\1.exe
exit

Choice 命令

使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。使用時應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234……。這個命令在有些Windows版本(比如WindowsXP)上可能不可用。

語法:
CHOICE:[/C[:]按鍵表] [/N] [/S] [/T[:]選擇值,秒數(shù)] [顯示文本]
其中,/C表示可選則的按鍵,/N表示不要顯示提示信息,/S表示大小寫字符敏感方式,/T表示若在批定的時間內(nèi)沒有選擇的話,自動執(zhí)行/C中定義的某個選擇值。顯示文本是CHOICE命令執(zhí)行時的提示信息。選擇結(jié)果將用ERRORLEVEL值來表示。

示例:

?

1234567891011121314151617

@echo offchoice /c:dme defrag,mem,endif errorlevel 3 goto defrag REM 應(yīng)先判斷數(shù)值最高的錯誤碼if errorlevel 2 goto memif errorlevel 1 goto end :defragc:\dos\defraggoto end :memmemgoto end :endecho good bye

此文件運行后,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然后if語句將作出判斷,d表示執(zhí)行標(biāo)號為defrag的程序段,m表示執(zhí)行標(biāo)號為mem的程序段,e表示執(zhí)行標(biāo)號為end的程序段,每個程序段最后都以goto end將程序跳到end標(biāo)號處,然后程序?qū)@示good bye,文件結(jié)束。

可替換的命令

對WindowsXP上不能使用CHOICE命令的情形,如果想使用相似的功能,可以使用 SET 命令,參見Set 命令 /P選項。

choice一般在cmd批處理中用來根據(jù)用戶輸入執(zhí)行不同的操作,非常實用,例如

下面是兩個軟件根據(jù)用戶選擇來執(zhí)行

?

123456789101112131415161718192021222324252627282930

@echo off遠(yuǎn)程協(xié)助工具集:startclscolor 0aMODE con: COLS=60 LINES=20echo.echo ===============================echo 請選擇遠(yuǎn)程工具echo ===============================echo.echo 1. AnyDeskecho.echo 2. TeamViewerecho.echo.:choset choice=set /p choice= 請輸入工具編號:IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%if /i "%choice%"=="1" goto AnyDeskif /i "%choice%"=="2" goto TeamViewer :AnyDeskAnyDesk.exeexit :TeamViewerTeamViewer.exeexit

下面來介紹一下choice的命令使用

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
該工具允許用戶從選擇列表選擇一個項目并返回所選項目的索引。

參數(shù)列表:
/C choices 指定要創(chuàng)建的選項列表。默認(rèn)列表是 "YN"。

/N 在提示符中隱藏選項列表。提示前面的消息得到顯示,選項依舊處于啟用狀態(tài)。

/CS 允許選擇分大小寫的選項。在默認(rèn)情況下,這個工具是不分大小寫的。

/T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)??山邮艿闹凳菑?0到 9999。如果指定了 0,就不會有暫停,默認(rèn)選項會得到選擇。

/D choice 在 nnnn 秒之后指定默認(rèn)選項。字符必須在用 /C 選項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。

/M text 指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。

/? 顯示此幫助消息。

注意:
ERRORLEVEL 環(huán)境變量被設(shè)置為從選擇集選擇的鍵索引。列出的第一個選擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,該工具會發(fā)出警告響聲。如果該工具檢測到錯誤狀態(tài),它會返回 255 的ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0 的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數(shù)時,將參數(shù)降序排列。

示例:
CHOICE /?
CHOICE /C YNC /M "確認(rèn)請按 Y,否請按 N,或者取消請按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。"
CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"

下面是來自國外網(wǎng)站的介紹

The CHOICE command was introduced in MS-DOS 6 and is still available in MS-DOS 7 (Windows 95/98).

In Windows NT 4, 2000 and XP, CHOICE is no longer a part of the standard distribution. It is, however, available as part of the Windows NT 4 Resouce Kit.
On the other hand, if you still have that old unused MS-DOS 6 or Windows 95/98 version lying around, you can use the CHOICE.COM from that version instead. (*)
Just copy it to a directory that is in your PATH.

Note: 16-bit DOS versions will not work in 64-bit Windows versions.
CHOICE is available again in Windows Vista and later versions.

大部分意思就是 這個命令會在以后的系統(tǒng)中一直存在,但注意16位的系統(tǒng)無法在64位系統(tǒng)自帶了,而我們安裝的64位系統(tǒng)已經(jīng)集成了64的choice命令,大家可以放心使用。

注釋
ERRORVALUE 環(huán)境變量被設(shè)置為用戶從選擇列表中選擇的鍵的索引。您指派的第一個鍵將返回值 1,第二個將返回值 2,第三個將返回值 3,依此類推。如果用戶按下一個不在您指派的鍵中間的鍵,Choice.exe 將發(fā)出警告聲(即,它向控制臺發(fā)送一個 BEL 或 07h 字符)。如果 Choice.exe 檢測到錯誤情況,它就會返回錯誤值 255。如果用戶按 Ctrl+Break 或 Ctrl+C,Choice.exe 就會返回錯誤值 0。當(dāng)您在批處理程序中使用錯誤值參數(shù)時,請將它們以降序列出。

示例
請在批處理文件中鍵入下列語法:
choice /c ync
運行 Choice.exe 時出現(xiàn)下列語句:
[Y,N,C]?
請在批處理文件中鍵入下列語法:
choice /c ync /n /m Yes, No or Continue?
運行 Choice.exe 時出現(xiàn)下列語句:
Yes, No, or Continue?
按如下方式將文字添加到語法中:
choice /c ync /m Yes, No, or Continue
運行 Choice.exe 時出現(xiàn)下列語句:
Yes, No, or Continue [Y,N,C]?
/t 命令行選項將設(shè)置一個時間限制(在該限制內(nèi)用戶必須響應(yīng)),并指定當(dāng)用戶在該時間限制內(nèi)沒有作出響應(yīng)時將顯示的值。要將時間限制設(shè)置為五秒并指定 N 作為默認(rèn)值,請在批處理程序中鍵入下列命令行:
choice /c ync /t 5 /d n
當(dāng)批處理文件啟動 Choice.exe 時,將出現(xiàn)下列消息:
[Y,N,C]?
如果用戶未能在五秒鐘內(nèi)按下一個鍵,Choice.exe 將選擇 N 并返回錯誤值 2。否則,Choice 將返回與用戶所選對應(yīng)的值。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI