Shell 修改 desktop.ini 文件的脚本

Shell Script for modifying desktop.ini file

我有很多带有自定义图标的文件夹。所有文件夹都在同一目录中。
例如。 D:\Folder是包含folder1,folder2,.....等的目录
每个文件夹都包含各自的图标和 desktop.ini 个文件

当前desktop.ini文件内容如下:

[.ShellClassInfo]
ConfirmFileOp=0
NoSharing=1
IconFile=folder1.ico
IconIndex=0
InfoTip=folder1

我想从每个文件夹的 desktop.ini 文件中删除 NoSharing=1

删除后,ini 文件应如下所示:

[.ShellClassInfo]
ConfirmFileOp=0
IconFile=folder1.ico
IconIndex=0
InfoTip=folder1

ini 文件是隐藏的,并且具有以下属性:系统、隐藏和存档。
感谢您提供的任何帮助。

使用sed p打印所有文件名上的每一行除了不需要的行,(MS Windows 样式路径名),具有就地编辑和备份文件:

sed --in-place=.bak --quiet '/^NoSharing=1$/!p' D:\Folder\folder?\desktop.ini

(如果不需要备份,请删除 =.bak。)

只有 1 个命令:D:\Folder

中的每个 desktop.ini 文件中递归地 (-r) replace/remove NoSharing=1

msr -r -p D:\Folder -f "^desktop.ini$" -S -t "(\s+)NoSharing=1\s*" -o "" -R

  • 如果要预览彩色替换结果,请删除-R
  • 如果要备份更改的文件,请添加 -K-R -K-RK
  • 您还可以按文件名、目录名、大小范围、上次写入时间范围等进行过滤,只需 运行 exe 即可显示内置用法和文档,或查看 git 像 README.md
  • 这样的文档

msr.exe/msr.gcc*/msr.cygwin是一个单一的exe工具(约1.6MB,无依赖,跨平台版本在Windows和Linux) 以递归方式查找和替换文件或管道文本并支持备份:在我打开的项目 https://github.com/qualiu/msr tools 目录中。