PowerShell批量處理文件名稱/內容的修改

在日常的文件管理與處理中,常常需要對大量文件名或文件內容進行修改,而手動逐個操作既繁瑣又容易出錯。PowerShell作為一種強大的腳本語言,為我們提供了高效批量處理文件名及內容修改的解決方案。通過編寫簡單的PowerShell腳本,可以輕松實現對文件的批量重命名、替換文件中的特定字符串等操作,極大地提高工作效率,減少人工操作的失誤,讓文件管理變得更加便捷與高效。

PowerShell使用方法

一、以管理員身份打開 PowerShell

按?Win?鍵打開開始菜單

輸入?PowerShell

在搜索結果中?右鍵單擊?Windows PowerShell

選擇?"以管理員身份運行"

若彈出 UAC 提示,點擊?"是"?確認

二、寫好腳本文件

三、運行腳本文件

.\demo.ps1 # 執行當前目錄下的腳本

當用該方法運行腳本時經常會出現如下報錯:.\rename_files.ps1 : 無法加載文件 D:\all_project\rename_files.ps1,因為在此系統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置 行:1 字符: 1

這個錯誤是由于 PowerShell 的安全策略禁止運行腳本文件造成的。

📌 錯誤原因分析

PowerShell 執行策略限制

  • PowerShell 默認設置為?Restricted(限制模式)
  • 此策略會阻止任何腳本文件(.ps1)執行
  • 系統保護機制防止潛在惡意腳本運行

檢查當前執行策略,在 PowerShell 中輸入:

Get-ExecutionPolicy
  • 若返回?Restricted(默認狀態),則需修改策略才能運行腳本

針對該問題,通常可以選擇臨時繞過策略

PowerShell.exe -ExecutionPolicy Bypass -File "D:\路徑\腳本名.ps1"

👉 特點:僅本次生效,不影響系統安全設置,執行命令如下所示:

PowerShell批量處理文件名稱替換的腳本

# 定義根目錄路徑(所有文件操作的基礎路徑)
$rootPath = "D:\all_project\STM32F10x_StdPeriph_Driver\src"# 顯示腳本啟動信息
Write-Host "Started file renaming..."# 遞歸獲取根目錄下所有文件,僅篩選名稱包含'f10x'的文件
$files = Get-ChildItem -Path $rootPath -Recurse -File | Where-Object { $_.Name -match 'f10x' 
}# 遍歷篩選后的文件集合
foreach ($file in $files) {# 替換文件名$newName = $file.Name -replace 'f10x', 'F103'# 異常處理塊try {# 顯示重命名操作詳情Write-Host "Renaming: $($file.Name) -> $newName"# 執行實際重命名操作(-Force覆蓋同名文件)Rename-Item -Path $file.FullName -NewName $newName -Force# 成功提示(綠色文字)Write-Host "Renamed successfully." -ForegroundColor Green}catch {# 錯誤處理:顯示失敗原因(紅色文字)Write-Host "Error renaming $($file.FullName): $_" -ForegroundColor Red}
}# 顯示腳本完成信息(青色文字)

處理結果:

PowerShell批量處理文件內容字符替換的腳本

# 設置根目錄路徑(STM32標準外設驅動源碼位置)
$rootPath = "D:\all_project\STM32F10x_StdPeriph_Driver\src"# 定義需要處理的目標文件擴展名列表(覆蓋常見代碼/配置文件類型)
$fileExtensions = @("*.c", "*.h", "*.txt", "*.htm", "*.uvprojx", "*.uvoptx", "*.bat", "*.xlsx", "*.*")# 顯示腳本開始執行的提示信息
Write-Host "Starting to replace 'f10x' with 'F103' in file contents..."# 遍歷每種文件擴展名類型
foreach ($extension in $fileExtensions) {# 遞歸獲取當前擴展名的所有文件$files = Get-ChildItem -Path $rootPath -Filter $extension -Recurse -File# 記錄文件總數用于進度顯示$fileCount = $files.Count$processedCount = 0  # 已處理計數器# 遍歷當前擴展名的所有文件foreach ($file in $files) {# 讀取文件全部內容(-Raw保留換行符格式)$content = Get-Content -Path $file.FullName -Raw -ErrorAction SilentlyContinue# 當文件內容存在且非空時執行替換if ($content) {# 進行字符串替換(大小寫敏感)$newContent = $content -replace "f10x", "F103"# 比較內容是否發生變化(避免不必要的寫入)if ($newContent -ne $content) {try {# 寫入修改后的內容(-Force覆蓋只讀文件)$newContent | Set-Content -Path $file.FullName -ForceWrite-Host "Updated content in: $($file.FullName)"}catch {# 文件寫入失敗時的錯誤處理Write-Host "Error updating $($file.FullName): $_" -ForegroundColor Red}}}# 更新進度計數器$processedCount++# 每處理100個文件顯示一次進度if ($processedCount % 100 -eq 0) {Write-Host "Processed $processedCount of $fileCount files..."}}
}

處理結果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84377.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GA3C(GPU/CPU混合式異步優勢Actor-Critic)算法實現控制倒立擺

GA3C算法實現倒立擺 完整代碼在文章結尾 GA3C算法 GPU/CPU混合式異步優勢AC算法,是由A3C算法進一步優化而來,為了更好利用GPU計算資源。 GA3C理論上與A3C相同,屬于On-Policy。但由于存在延遲更新問題,導致用于策略更新的數據并…

基礎RAG實現,最佳入門選擇(六)

帶有問題生成的文檔增強RAG 通過問題生成使用文檔增強來實現增強的RAG方法。通過為每個文本塊生成相關問題,改進了檢索過程,從而從語言模型中獲得更好的響應。 具體實現步驟 1.數據攝取:從PDF文件中提取文本。 2.chunking:將文本…

vue3 電商類網站實現規格的選擇

目前有一個這樣的需求 類似淘寶 京東選擇 但是在人家大廠給的數據我不清除是什么樣子的 我這邊后端給的數據 一開始是想把規格全部顯示出來的 發現實現不了 后端的數據有限 因為必須選擇一個顏色 才可以對應的第二個規格 才知道有沒有庫存 因為這個庫存 是由兩個規格決定…

HarmonyOS5 音樂播放器app(一):歌曲展示與收藏功能(附代碼)

鴻蒙音樂應用開發:從收藏功能實現看狀態管理與交互設計 在移動應用開發中,收藏功能是用戶體驗的重要組成部分。本文將以鴻蒙OS音樂應用為例,詳細解析如何實現具有動畫效果的收藏功能,涉及狀態管理、組件通信和交互動畫等核心技術…

PHP函數大全參考代碼

字符串相關操作函數 去除空格或其他字符 trim刪除字符串兩端空格或其他預定義字符rtrim刪除字符串右邊空格或其他預定義字符choprtrim() 的別名 chop() 與 Perl 的 chop() 函數有所不同,它會刪除字符串的最后一個字符。ltrim刪除字符串左邊空格或其他預定義字符 字…

Flowise工作流引擎的本地部署與遠程訪問實踐

文章目錄 前言1. Docker安裝Flowise2. Ubuntu安裝Cpolar3. 配置Flowise公網地址4. 遠程訪問Flowise5. 固定Cpolar公網地址6. 固定地址訪問 前言 當多數團隊仍深陷傳統數據處理框架的桎梏時,創新者已率先引入Flowise智能流程引擎,成功將面向大型語言模型…

端側AI+OS垂直創新研究報告

端側AIOS垂直創新研究報告 摘要 端側AIOS研究背景、核心創新點及產業價值 研究背景 隨著AI技術的快速發展,端側AI已成為2025年的重要技術趨勢[4]。端側AI是指將AI計算能力從云端遷移到終端設備上,實現本地化的智能處理。這一技術變革主要受到隱私安全…

【JVM 07-運行時常量池重要組成部分-StringTable】

StringTable 筆記記錄 1. 常量池、運行時常量池與字符串常量池(StringTable)的關系2. String str"a"放入字符串常量池的過程3. 常見面試題4. StringTable特性5.StringTable的位置變更5.1 為什么位置變換?5.2 位置變更演示 6. StringTable垃圾回收7. Strin…

算法-每日一題(DAY10)打家劫舍

1.題目鏈接: 198. 打家劫舍 - 力扣(LeetCode) 2.題目描述: 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統&#xf…

android UI 布局

一:約束布局 參考: 【約束布局】ConstraintLayout 約束布局 ( 簡介 | 引入依賴 | 基本操作 | 垂直定位約束 | 角度定位約束 | 基線約束 )_韓曙亮-2048 AI社區 以下是一個基于 ConstraintLayout 的簡單 Android 示例,包含三個控件&#xff0…

【K8S】詳解Labels?? 和 ??Annotations

在 Kubernetes(K8s)中,??Labels(標簽)?? 和 ??Annotations(注解)?? 都是用于為資源對象(如 Pod、Service、Deployment)附加元數據的機制,但它們在設計…

系統模塊編程與實現

設備類(Device Class)?? 和 ??設備節點(Device Node)??是深入 Linux 設備管理和驅動模型的核心基礎。它們就像“骨骼”與“門戶”,共同構建了 Linux 與硬件交互的核心橋梁。 一、設備類與設備節點 1. ??設備…

視頻壓縮、碼率與流媒體傳輸知識總結

🎥 視頻壓縮、碼率與流媒體傳輸知識總結 本筆記整理了 I/P/B 幀結構、碼率計算、文件大小估算、壓縮格式對比、推流帶寬建議等視頻工程常見技術要點。 一、單幀與未壓縮視頻數據量估算 分辨率:19201080(1080p) 色深:…

嵌入式C++學習路線

🚀 嵌入式C學習路線圖 從C語言基礎到嵌入式C高手的完整路徑 📋 學習進度追蹤 總體目標: 20-26周完成全部學習內容 前置條件: C語言基礎 STM32開發經驗 學習方式: 理論學習 實踐項目 階段1: C基礎過渡 (2-3周) 目標…

VSCode1.101.1Win多語言語言編輯器便攜版安裝教程

軟件下載 【名稱】: VSCode1.101.1 【大小】: 120M 【語言】: 簡體中文 【安裝環境】: Win10/Win11 【迅雷網盤下載鏈接】(務必手機注冊): 迅雷 【網站下載鏈接】: 其他網盤 軟件介紹 VSCod…

ssh 服務和 rsync 數據同步

目錄 一、ssh服務 1、概述 2、命令解析 遠程登錄命令 遠程拷貝命令 3、登錄方式配置 1、用戶名密碼登錄 2、公鑰驗證登錄 二、rsync 數據同步 1、rsync概述 2、rsync運行原理 3、rsync部署 一、ssh服務 1、概述 ssh服務,一種遠程管理連接工具&#xf…

使用隨機森林實現目標檢測

核心實現思路 滑動窗口策略:在圖像上滑動固定大小的窗口,對每個窗口進行分類多維特征提取:結合統計特征、紋理特征、邊緣特征、形狀特征等隨機森林分類:訓練二分類器判斷窗口是否包含目標后處理優化:使用非極大值抑制…

3.6 move_base導航初體驗

1.環境搭建 在工作空間src下git wpr_simulation,安裝install_for_noetic.sh,然后再回退工作空間進行編譯 下載參數文件 git clone https://github.com/6-robot/wpb_home.git下載需要魔法,在這里可以使用手機熱點進行平替 進入腳本文件夾 …

Mysql高級——MVCC(多版本并發控制)

MySQL MVCC(多版本并發控制)詳解 MVCC(Multi-Version Concurrency Control)是 MySQL InnoDB 存儲引擎實現的一種并發控制機制,用于在保證事務隔離性的同時,提高數據庫的并發性能。下面從原理、實現、事務隔…

Oracle union連接的怎么排序

在Oracle數據庫中,使用UNION或UNION ALL操作符來合并兩個或多個查詢結果時,如果想對這些合并后的結果進行排序,通常有兩種方法可以實現: 方法1:在最后的查詢結果上使用ORDER BY 你可以在所有使用UNION或UNION ALL合并…