求根据记事本提供的内容,自动更名的软件
一个文件夹有几千个文件和一个记事本格式的书表,几千个文件原来用数字命名,所有数字都能在记事本找到匹配的名字。所有新文件命名规则:年_书名_isbn
比如:
原来文件名:63923 自动匹配记事本内容更改后的名字为:2024_网络营销_9787115639233
原来文件名:62251自动匹配记事本内容更改后的名字为:2024_汽车、赛车及特种车辆 线稿插画资料集_9787115622518
目前有哪个重命名的软件能实现这样的功能?如果没有,烦请大神写个批处理程序,谢谢!
书表下载:
链接:https://pan.baidu.com/s/1LRUq1N4t3FTTfuuFEuiekg?pwd=hbvu
提取码:hbvu
软件收集:
大家好,在此收集重命名软件
有效期截止到2024年11月11日15:01,麻烦在此之前点击以下链接将文件发送给我,支持发送任意格式的文件,感谢~
链接:https://pan.baidu.com/disk/main#/transfer/send?surl=AAcAAAAAABLYUQ
dreamlife1979 发表于 2024-11-4 21:30
兄弟,无法改名,文件夹的文件还是没有变化,
运行批处理文件,生成temp_book_data。里面要改名的一点 ...
已经重新上传了脚本,脚本名称是:批量重命名书名V2_作者pandagg.bat,将脚本放在同个文件夹内,双击执行,如解决请采纳,谢谢! 上传好了,将bat脚本放到这个文件夹内,双击运行 已上传,莫辜负。当前文件夹下双击运行即可 pandagg 发表于 2024-11-4 15:42
上传好了,将bat脚本放到这个文件夹内,双击运行
兄弟,无法改名,文件夹的文件还是没有变化,
运行批处理文件,生成temp_book_data。里面要改名的一点没有变化。 pandagg 发表于 2024-11-4 15:42
上传好了,将bat脚本放到这个文件夹内,双击运行
批处理无法自动改名,运行程序提示:
Active code page:65001
重命名中,请耐心等待。。。
文件重命名完成
Press any key to continue。。。
文件夹的文件名没有变化,增加temp_book_data这个文件 为了实现这个需求,我们可以编写一个PowerShell脚本来完成以下任务:
1. 读取记事本文件中的内容。
2. 遍历指定目录中的所有文件。
3. 根据记事本中的映射关系重命名文件。
假设记事本文件的格式如下:
```
63923,网络营销,9787115639233
62251,汽车、赛车及特种车辆 线稿插画资料集,9787115622518
```
以下是实现该功能的PowerShell脚本:
```powershell
# 指定要处理的目录和记事本文件路径
$directory = "C:\Path\To\Your\Directory"
$notebookFile = "C:\Path\To\Your\Notebook.txt"
# 读取记事本文件内容并解析成字典
$mapping = @{}
Get-Content $notebookFile | ForEach-Object {
$parts = $_ -split ','
if ($parts.Count -eq 3) {
$mapping[$parts] = @{
BookName = $parts
ISBN = $parts
}
}
}
# 获取目录中的所有文件
$files = Get-ChildItem -Path $directory
foreach ($file in $files) {
# 提取文件名中的数字部分
$oldName = $file.BaseName
if ($mapping.ContainsKey($oldName)) {
$bookInfo = $mapping[$oldName]
$newName = "2024_${bookInfo.BookName}_${bookInfo.ISBN}${file.Extension}"
# 构建新的文件路径
$newFilePath = Join-Path -Path $directory -ChildPath $newName
# 重命名文件
Rename-Item -Path $file.FullName -NewName $newName -WhatIf
} else {
Write-Host "No mapping found for file: $oldName"
}
}
```
### 如何使用这个脚本
1. 打开记事本或其他文本编辑器,将上述脚本粘贴进去。
2. 修改脚本中的`$directory`变量为你想要操作的目录路径。
3. 修改脚本中的`$notebookFile`变量为记事本文件的路径。
4. 保存文件为`.ps1`扩展名,例如`RenameFiles.ps1`。
5. 打开PowerShell(可以通过在开始菜单搜索“PowerShell”来启动)。
6. 在PowerShell中,导航到包含脚本的目录,例如:
```powershell
cd "C:\Path\To\Script"
```
7. 运行脚本,但在实际执行前,可以先加上`-WhatIf`参数来查看将会发生什么更改,而不实际执行任何操作:
```powershell
.\RenameFiles.ps1
```
8. 如果一切看起来都正确,你可以移除`-WhatIf`参数再次运行脚本以应用更改:
```powershell
.\RenameFiles.ps1
```
### 注意事项
- 记事本文件的格式必须是 `数字,书名,ISBN`,每一行对应一个文件。
- 脚本中的`-WhatIf`参数可以让你预览将要执行的操作,确保安全后再移除该参数。
- 请确保在运行脚本之前备份重要文件,以防万一出现意外情况。
- 该脚本默认不会处理子目录中的文件。如果你想包括子目录中的文件,可以在`Get-ChildItem`命令后加上`-Recurse`参数。
- 如果文件名包含非英文字符,确保PowerShell的编码设置正确,以免出现乱码问题。 可以试试结合excel版的重命名文件工具来进行,因为excel方便匹配核对 chinaarchy 发表于 2024-11-5 00:31
为了实现这个需求,我们可以编写一个PowerShell脚本来完成以下任务:
1. 读取记事本文件中的内容。
记事本文件格式已经上传到百度网盘,格式好像无法满足你的要求。能编辑一个可运行批处理程序么?放在文件夹里,文件夹的所有文件命名根据记事本里的内容来命名。谢谢 你这个有点复杂, 我看了 书表.txt 里面的格式不标准, 不能简单的根据逗号分隔, 里面的name有的还包含逗号,双引号等等{:1_937:} 我来试试吧
页:
[1]
2