mylog.ps1 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # 交互式命令行模式
  2. function Interactive-Mode {
  3. while ($true) {
  4. Write-Host "`r请输入命令 (c: 清空日志, p: 打印日志, l: 查看日志, t: 实时查看日志, m: 复制错误信息, q: 退出): " -NoNewline
  5. $cmd = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown").Character
  6. Write-Host # 换行
  7. switch ($cmd) {
  8. 'c' {
  9. Clear-Content -Path "storage\logs\laravel.log"
  10. Write-Host "日志已清空。"
  11. }
  12. 'p' {
  13. $errors = Get-Content "storage\logs\laravel.log" | Select-String "ERROR"
  14. if ($errors) {
  15. Write-Host
  16. Get-Content "storage\logs\laravel.log" | Select-String "ERROR"
  17. Write-Host
  18. } else {
  19. Write-Host "未发现错误信息。"
  20. }
  21. }
  22. 'l' {
  23. Get-Content "storage\logs\laravel.log" | Out-Host -Paging
  24. }
  25. 't' {
  26. Get-Content "storage\logs\laravel.log" -Wait -Tail 1000
  27. }
  28. 'q' {
  29. Write-Host "退出程序"
  30. exit
  31. }
  32. 'm' {
  33. $errors = Get-Content "storage\logs\laravel.log" | Select-String "ERROR"
  34. if ($errors) {
  35. $firstError = Get-Content "storage\logs\laravel.log" | Select-String "ERROR" | Select-Object -First 1
  36. $clipboardText = "$firstError`n`n上面是错误日志,请帮我修复这个bug,并始终用中文语言回答。"
  37. Set-Clipboard -Value $clipboardText
  38. Write-Host "已复制错误信息到剪贴板,你可以问AI助手,Ta会给你解决错误。"
  39. } else {
  40. Write-Host "未发现错误信息。"
  41. }
  42. }
  43. default {
  44. Write-Host "无效命令。使用 'c' 清空日志, 'p' 打印日志, 'l' 查看日志, 't' 实时查看日志, 'm' 复制错误信息, 'q' 退出。"
  45. }
  46. }
  47. }
  48. }
  49. # 运行交互式模式
  50. Interactive-Mode