結論
ループを抜けるには、returnっぽい。
背景・経緯
作業が面倒だから、退屈なことはpowershellにやらせようと思った次第。chatGPTの相乗効果で本当に楽になる。もはや何も考えていない。素晴らしい。だから、無知は罪だった・・・。
このようなソースコードを書いて、楽をしようとしてました。
別の生成ツールがSQLを書いてはくれるのだが、INSERTとDELETEしか吐き出さない。サクラエディターとかでよしなに、置き換えればいいのだが、面倒だし、別のツールを作るためのインプットにもしようかなと考えた。
# 入力ファイルと出力ファイルのパスを設定
$inputFilePath = "C:\path\to\input.sql"
$outputFilePath = "C:\path\to\output.sql"
try {
# 入力ファイルが存在するか確認
if (-not (Test-Path -Path $inputFilePath)) {
throw "入力ファイルが見つかりません:$inputFilePath"
}
# 出力ファイルが存在する場合は削除
if (Test-Path -Path $outputFilePath) {
Remove-Item -Path $outputFilePath -ErrorAction Stop
}
# 入力ファイルを1行ずつ読み込み
Get-Content -Path $inputFilePath -ErrorAction Stop | ForEach-Object {
$line = $_
# 空行や空白のみの行をスキップ
if ($line -match '^\s*$') {
continue
}
# DELETE文の場合は、SELECT * FROMに置き換える
if ($line -like "*DELETE*") {
$line = $line -replace "DELETE", "SELECT * FROM"
}
Add-Content -Path $outputFilePath -Value $line -ErrorAction Stop
}
Write-Output "処理が完了しました。出力ファイル:$outputFilePath"
}
catch {
# エラーメッセージを表示
Write-Host "エラーが発生しました: $_" -ForegroundColor Red
}
昔だったら、このコード、半日ぐらいなのかな。だがしかし、生成系AIは魔力!そして怠け者な自分にはまさに最高のパートナー!
自分>1分でやれ
chatGPT>ハイ・・・
ジャーン
もはややめられませんな。
現実は甘くはなかった・・・
よし、これで今日も成果物っぽいものもできたし、帰ろう。ささっと検証してとっとと帰ろう。
・・・
なぜだか知らないが、一部しか振り分け処理ができてない。タイポはなさそうなのに・・・。おかしいぞ。インプットファイルの中身か?文字コードでの問題はよくある・・・心配ない、10分格闘して、サラッと帰ろう。
・・・
なぜだ、改行コードは普通なのに。何回やっても、目的が果たせない。chatGPTは同じ答えしか言わない。もう、30分も経過してしまった。
くそ。もう諦めるか。いいや、秘伝、コンソールに出力!
・・・?For-Each { Wirte-Host $_ } だとコンソールでは、出力している・・・?
さらに15分経過・・・
だめだ。もうわからない・・・
continueがどうしてcontinueしないんだ?もしかして
そう、returnだった・・・・
無知の罪
いやはや、本当に、知らないは罪なのかもしれない・・・。某少年漫画のワンシーンではないが、解決した時、真っ先にあのシーンが浮かんでしまった。不勉は不便を生み出すな・・・。
雑感
それでも、やっぱり生成系AIはやめられれないのでした。なんという魔力。退屈なことはchatGPTにやらせよう。そのうち、自分の代わりにchatGPTが働いてくれないかな?と思った次第でした。
コメント