本文目录导读:

- 批处理脚本 (Windows .bat/.cmd)
- Shell 脚本 (Linux/macOS .sh)
- Python 脚本 (最常见)
- PowerShell 脚本 (Windows高级)
- 实用脚本示例:批量重命名文件
- 常见循环场景
- 注意事项
当然可以!实用脚本完全可以循环,而且循环是脚本中最常用、最强大的功能之一,无论是批处理、Shell、Python、JavaScript 还是 PowerShell,都支持循环结构。
下面我会从最常见的脚本场景给你一些实用的循环示例:
批处理脚本 (Windows .bat/.cmd)
@echo off
:: 循环处理当前目录下所有 .txt 文件
for %%f in (*.txt) do (
echo 正在处理:%%f
find "错误" %%f > nul
if errorlevel 1 (
echo 文件 %%f 没有发现错误
) else (
echo 文件 %%f 发现了错误!
)
)
:: 循环5次,每次打印数字
for /L %%i in (1,1,5) do (
echo 这是第 %%i 次循环
)
Shell 脚本 (Linux/macOS .sh)
#!/bin/bash
# 循环读取文件列表
for file in /var/log/*.log; do
if [ -f "$file" ]; then
echo "检查日志文件: $file"
tail -n 10 "$file" | grep -i "error"
fi
done
# 无限循环监控进程,直到手动停止
while true; do
if pgrep -x "nginx" > /dev/null; then
echo "$(date) - Nginx 运行正常"
else
echo "$(date) - 警告: Nginx 已停止!"
fi
sleep 5
done
Python 脚本 (最常见)
import os
import time
# 循环处理文件夹下所有图片
for filename in os.listdir("./images"):
if filename.endswith((".jpg", ".png", ".gif")):
print(f"正在处理: {filename}")
# 你的处理逻辑...
# resize_image(f"./images/{filename}")
# 带超时的循环
max_retries = 3
retry_count = 0
while retry_count < max_retries:
try:
# 尝试连接数据库
print(f"第 {retry_count+1} 次尝试...")
# connection = connect_db()
break # 成功则跳出
except Exception as e:
retry_count += 1
time.sleep(2)
PowerShell 脚本 (Windows高级)
# 循环导出所有用户信息
$users = Get-LocalUser
foreach ($user in $users) {
$userInfo = @{
Name = $user.Name
Enabled = $user.Enabled
LastLogon = $user.LastLogon
}
$userInfo | Export-Csv -Path "users_report.csv" -Append
}
# 循环直到用户输入
do {
$input = Read-Host "请输入 'exit' 退出"
Write-Host "你输入了: $input"
} while ($input -ne "exit")
实用脚本示例:批量重命名文件
Python 版:
import os
for count, filename in enumerate(os.listdir(".")):
if filename.endswith(".jpg"):
new_name = f"photo_{count+1:03d}.jpg"
os.rename(filename, new_name)
print(f"重命名: {filename} -> {new_name}")
批处理版:
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.jpg) do (
set "newname=photo_!count!.jpg"
ren "%%f" "!newname!"
set /a count+=1
)
常见循环场景
| 场景 | 循环类型 | 说明 |
|---|---|---|
| 批量处理文件 | for file in files |
最常见 |
| 重试机制 | while retry < max |
网络请求、数据库连接 |
| 监控服务 | while true |
守护进程 |
| 定时任务 | for i in range(10) |
自动化测试 |
| 数据处理 | for row in data |
分析日志、CSV |
注意事项
- 避免无限循环:除非是故意的守护进程,否则要设置退出条件
- 性能考虑:循环内不要做过多IO操作,可以批量处理
- 退出机制:长循环最好提供 Ctrl+C 中断或
--dry-run预览模式 - 调试技巧:先加
echo或print看循环逻辑对不对,再执行实际操作
循环是实用脚本的灵魂,几乎所有自动化任务都离不开它,你具体想用脚本做什么?我可以给你更针对性的循环示例。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播