当前位置: 首页 > news >正文

在WebFuture里如何自动处理二维码问题脚本

下方代码另存为fix.ps1在views文件夹,在views文件夹里面执行powershell -ExecutionPolicy Bypass -File .\fix.ps1

# PowerShell 脚本:备份和修改 Shared 文件夹中的 cshtml 文件 # 兼容 PowerShell 5.1 和 PowerShell 7+ # 设置当前目录 $currentPath = Get-Location # 创建 bak 文件夹(如果不存在) $bakPath = Join-Path $currentPath "bak" if (-not (Test-Path $bakPath)) { New-Item -Path $bakPath -ItemType Directory | Out-Null Write-Host "已创建 bak 文件夹" -ForegroundColor Green } # 获取当前目录下所有文件夹(排除 bak 文件夹) $folders = Get-ChildItem -Path $currentPath -Directory | Where-Object { $_.Name -ne "bak" } foreach ($folder in $folders) { $folderName = $folder.Name $sharedPath = Join-Path $folder.FullName "Shared" # 检查是否存在 Shared 文件夹 if (Test-Path $sharedPath) { Write-Host "`n处理文件夹: $folderName" -ForegroundColor Cyan # 定义要处理的文件 $files = @( "网站搜索.cshtml", "网站搜索-首页.cshtml", "网站顶部.cshtml" ) # 创建备份目录结构 $bakFolderPath = Join-Path $bakPath $folderName $bakSharedPath = Join-Path $bakFolderPath "Shared" if (-not (Test-Path $bakSharedPath)) { New-Item -Path $bakSharedPath -ItemType Directory -Force | Out-Null } # 处理每个文件 foreach ($fileName in $files) { $sourceFile = Join-Path $sharedPath $fileName if (Test-Path $sourceFile) { # 先备份原始文件 $bakFile = Join-Path $bakSharedPath $fileName Copy-Item -Path $sourceFile -Destination $bakFile -Force Write-Host " 已备份: $fileName" -ForegroundColor Yellow # 逐行读取文件(兼容方式) try { $lines = @(Get-Content -Path $sourceFile -Encoding UTF8 -ErrorAction Stop) } catch { # 如果 UTF8 失败,尝试默认编码 $lines = @(Get-Content -Path $sourceFile -ErrorAction Stop) } $modified = $false # 处理网站搜索.cshtml 和 网站搜索-首页.cshtml if ($fileName -eq "网站搜索.cshtml" -or $fileName -eq "网站搜索-首页.cshtml") { $newLines = New-Object System.Collections.ArrayList foreach ($line in $lines) { $skipLine = $false # 1. 删除包含 var keyword = Context.Request.Query("wd") 或 Get("wd") 的行 if ($line -match 'var\s+keyword\s*=\s*Context\.Request\.(Get|Query)\s*\(\s*"wd"\s*\)') { $skipLine = $true $modified = $true Write-Host " 已删除行: $($line.Trim())" -ForegroundColor Green } # 2. 替换 id="inputkeyword" 或 id="topKeyWord" 的 input 标签中的 value="@keyword" 为 value="" if (-not $skipLine) { # 检查是否包含目标 id 和 value="@keyword" if (($line -match 'id\s*=\s*"inputkeyword"' -or $line -match 'id\s*=\s*"topKeyWord"') -and $line -match 'value\s*=\s*"@keyword"') { $originalLine = $line $line = $line -replace '(value\s*=\s*")@keyword(")', '$1$2' if ($originalLine -ne $line) { $modified = $true $idName = if ($originalLine -match 'id\s*=\s*"inputkeyword"') { 'inputkeyword' } else { 'topKeyWord' } Write-Host " 已修改 value 属性: id=$idName" -ForegroundColor Green } } [void]$newLines.Add($line) } } # 保存修改后的内容 if ($modified) { $newLines | Set-Content -Path $sourceFile -Encoding UTF8 } } # 处理网站顶部.cshtml if ($fileName -eq "网站顶部.cshtml") { try { $content = Get-Content -Path $sourceFile -Raw -Encoding UTF8 -ErrorAction Stop } catch { $content = Get-Content -Path $sourceFile -Raw -ErrorAction Stop } # 替换 @Power.QrCode(任何参数) 为 @Power.QrCode() if ($content -match '@Power\.QrCode\s*\([^)]+\)') { $content = $content -replace '@Power\.QrCode\s*\([^)]+\)', '@Power.QrCode(null,100)' # 兼容 PowerShell 5.1 - 使用 [System.IO.File]::WriteAllText 替代 Set-Content -NoNewline [System.IO.File]::WriteAllText($sourceFile, $content, [System.Text.Encoding]::UTF8) $modified = $true Write-Host " 已替换 QrCode 方法: $fileName" -ForegroundColor Green } } if (-not $modified) { Write-Host " 未找到需要修改的内容: $fileName" -ForegroundColor DarkGray } } else { Write-Host " 文件不存在: $fileName" -ForegroundColor Gray } } } else { Write-Host "文件夹 $folderName 中不存在 Shared 文件夹" -ForegroundColor Gray } } Write-Host "`n脚本执行完成!" -ForegroundColor Green Write-Host "原始文件已备份到 bak 文件夹中" -ForegroundColor Cyan
http://www.jsqmd.com/news/495019/

相关文章:

  • godot2D游戏教程系列二(17)
  • Spring AI Alibaba StateGraph 多智能体编排(配图生成)
  • 《掌控习惯》书摘
  • CD4抗体如何解码免疫调控?
  • 如何在 JavaScript 中使用 var、let、const 声明变量?
  • 人工智能之数学基础:梯度
  • MySQL分库分表的实现(五)--公共表处理
  • 百度文库下载免费方法_百度文库文档免费下载
  • 【华为OD机试真题】黑白棋 · N×N棋盘移动范围问题(Java/Go)
  • TypeScript的as断言与satisfies操作符的类型安全比较
  • AI工具帮助程序员做网页的经历
  • 基于SpringBoot+Vue的智能健身跟踪系统毕设项目(完整源码+论文+部署)
  • ICANN是什么组织?ICANN与域名是什么关系?为什么注册商需要获得ICANN的授权?
  • Docker部署.NET10 项目
  • 测试宇宙假说:我们是否生活在模拟测试中?——软件测试从业者的专业视角
  • Java常用API之String类:
  • ABB机器人仿真工作站:超便捷教学实训平台
  • Rust的std--mem--transmute:类型转换的终极武器(及危险)
  • AI检测算法不断升级:免费降AI工具如何应对新挑战
  • 使用Jsoup爬取豆瓣电影Top250(附Java代码)
  • Redis 队列学习笔记(List Queue)
  • 告别API封号焦虑:分享一个稳定的Claude Code与OpenAI Codex接入方案
  • PMIC小记
  • server-http.ts 文件分析
  • 编程语言特性比较与适用场景选择建议
  • 英伟达GTC 2026“芯片全家桶”震撼登场,微美全息构建全栈算力创新体系迎风而上
  • 用户生成内容:海量数据存储与检索的优化
  • 46页精品PPT | 数据治理大数据平台资源规划与建设解决方案
  • python-flask大学生志愿者组织活动报名管理系统_9fcw0
  • 从315曝光的LLM语料污染看GEO工程化治理