在日常的文件管理与处理中,常常需要对大量文件名或文件内容进行修改,而手动逐个操作既繁琐又容易出错。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合并…