将SQLite数据表中某字段的值保存为本地txt文件

发布于:2025-06-25 ⋅ 阅读:(16) ⋅ 点赞:(0)

背景:
> Windows操作系统。
> SQLite数据库文件 myData.db,内有数据表'commits',表中有字段 commit_patch, commit_id, change_count, status等。

需求:
> 将'commit_patch'中的每一条数据都导出为txt文件保存在本地;
> 文件名为[commit_id]_[change_count].txt。

操作步骤:
1. 导出数据表 commits 为csv文件 --> commits.csv

2. 新建 export.ps1 文件,在编辑器中写入以下代码:

$csv = Import-Csv -Path "commits.csv"

$outputFolder = "commit_patches"
New-Item -ItemType Directory -Force -Path $outputFolder | Out-Null

foreach ($row in $csv) {
	$fileName = "$outputFolder\$($row.commit_id)_$($row.change_count).txt"
	$content = $row.commit_patch
	Set-Content -Path $fileName -Value $content -Encoding UTF8
}

3. 在 export.ps1 文件所在目录下,右键选择 Open in terminal。
> 执行:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

> 执行 export.ps1:

.\export.ps1

查看当前目录,可以看到新增了一个名为 commit_patches 的文件夹,保存有导出的所有txt文件。


进阶需求:只保存 status 字段的值为 'modified' 的 commit_patch 数据。

给 export.ps1 添加判断语句:

$csv = Import-Csv -Path "commits.csv"

$outputFolder = "commit_patches"
New-Item -ItemType Directory -Force -Path $outputFolder | Out-Null

foreach ($row in $csv) {
    if ($row.status -eq 'modified') {
	    $fileName = "$outputFolder\$($row.commit_id)_$($row.change_count).txt"
	    $content = $row.commit_patch
	    Set-Content -Path $fileName -Value $content -Encoding UTF8
    }
}

其他步骤不变。

Done.


网站公告

今日签到

点亮在社区的每一天
去签到