windows bat系列7:for處理案例二 產生等差序列
1. for幫助原型
FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結束的一個數字序列。因此,(1,1,5)將產生序列
1 2 3 4 5,(5,-1,1)將產生序列(5 4 3 2 1)
2. 一個案例程式碼
需求說明:
假設需要設計定時任務(schedule task),每隔一段時間將某個目錄下的檔案傳送到遠端機器,然後刪除目錄下的所有檔案,目錄下的檔案由其他任務產生。此案例指令碼就是模擬檔案的產生,通過for迴圈產生等差序列來區分不同的檔案。
@echo off
Rem close echo
chcp 437>nul
setlocal enabledelayedexpansion
Rem set parameters
set TIME_HOUR=!time:~0,2!
set TIME_MIN=!time:~3,2!
set SYS_TIME=%TIME_HOUR%_%TIME_MIN%
Rem enter script's path
pushd %~dp0
Rem create file
for /L %%i in (1,1,5) do (
set tmpfile=%SYS_TIME%_tempfile_%%i.txt
echo This is a temp file, seq is %%i >!tmpfile!
)
popd
endlocal
pause
程式的主要功能已經加了註釋,相信大家都能理解。主要說明以下幾點:
a. 對當前時間進行字串擷取後拼裝:
set TIME_HOUR=!time:~0,2!
set TIME_MIN=!time:~3,2!
set SYS_TIME=%TIME_HOUR%_%TIME_MIN%
目的是為了區別不同時間的檔案,因為前面需求說了:此指令碼可能被定時任務所呼叫。
b. pushd/popd表示將路徑壓棧並進入路徑,這樣產生的檔案就在指令碼的同級目錄,因為我沒有拼接檔案的完整路徑;
c. for /L產生等差序列。其中for迴圈體中根據時間和序列號拼接了檔名,並用echo的重定向向檔案寫入了一行文字。
3. 效果圖
相關文章
- windows bat系列11:for處理案例四 去掉字串中的空格WindowsBAT字串
- windows bat系列9:for處理案例三 單行按指定分隔符分割WindowsBAT
- windows 處理bat連線本地mysqlWindowsBATMySql
- 處理生產bug
- windows cmt bat批處理中的註釋WindowsBAT
- 機器學習的7個真實世界生產案例機器學習
- bat處理檔案BAT
- bat檔案處理BAT
- Trick:處理加減等差數列的技巧
- Windows批處理(cmd/bat)常用命令小結WindowsBAT
- 10 Windows批處理之呼叫例程和bat檔案WindowsBAT
- 【Oracle】死鎖的產生與處理Oracle
- Windows批處理學習(二)——批處理(3)薦Windows
- bat批處理檔案BAT
- bat 批處理字串操作BAT字串
- Windows bat批處理刪除指定N天前的檔案WindowsBAT
- 編寫簡單的windows bat批處理指令碼檔案WindowsBAT指令碼
- Windows 7藍色畫面處理方法Windows
- bat批處理常用指令碼BAT指令碼
- BAT 批處理指令碼 教程BAT指令碼
- 最長等差數列;及子序列分析
- 【精益生產】如何處理決策延遲?
- Windows 7忘記密碼的處理方法Windows密碼
- Tomcat 7 的一次請求分析(一)處理執行緒的產生Tomcat執行緒
- Oracle 產生序列的 6 種方法Oracle
- android apkbuilder.bat批處理AndroidAPKUIBAT
- windows批處理之二:基礎知識Windows
- BAT機器學習面試1000題系列(二)BAT機器學習面試
- 影像處理案例03
- 怎樣處理重新命名系列案例程式碼
- .bat批處理新增Python任務BATPython
- XP服務優化批處理.bat優化BAT
- 精益生產管理諮詢公司如何處理衝突?
- BAT呼籲建反網路“黑產”生態圈BAT
- windows批處理之一:字串處理Windows字串
- windows bat系列10:批量設定&取消共享目錄WindowsBAT
- 使用Android註解處理器,解放勞動生產力Android
- 多生產者-消費者中假死現象的處理