本文目录导读:

Windows PowerShell 脚本 - 批量添加文件属性
# batch-add-file-properties.ps1
# 功能:批量向文件添加扩展属性(作者、备注、标签等)
# 设置目标目录
$targetDirectory = "C:\Your\Target\Directory"
$fileFilter = "*.*" # 可改为 *.txt, *.pdf 等
# 设置要添加的属性
$author = "张三"
$comment = "批量添加的备注信息"
$tags = "文档;报告;2024"
# 获取所有文件
$files = Get-ChildItem -Path $targetDirectory -Filter $fileFilter -File
foreach ($file in $files) {
try {
# 添加扩展属性(基于NTFS文件系统)
Set-Content -Path ($file.FullName + ":Author") -Value $author
Set-Content -Path ($file.FullName + ":Comment") -Value $comment
Set-Content -Path ($file.FullName + ":Tags") -Value $tags
Write-Host "已处理: $($file.Name)" -ForegroundColor Green
}
catch {
Write-Host "处理失败: $($file.Name) - $_" -ForegroundColor Red
}
}
Write-Host "完成!处理了 $($files.Count) 个文件"
Python 脚本 - 跨平台文件元数据修改
# batch_add_metadata.py
import os
from pathlib import Path
import platform
import subprocess
import datetime
def add_windows_metadata(file_path, metadata):
"""Windows系统下添加NTFS扩展属性"""
try:
# 使用setxattr或streams命令
for key, value in metadata.items():
cmd = f'echo {value} > "{file_path}:{key}"'
subprocess.run(cmd, shell=True, capture_output=True)
return True
except Exception as e:
print(f"Windows元数据添加失败: {e}")
return False
def add_linux_metadata(file_path, metadata):
"""Linux系统下添加扩展属性"""
try:
for key, value in metadata.items():
cmd = f'setfattr -n user.{key} -v "{value}" "{file_path}"'
subprocess.run(cmd, shell=True, check=True)
return True
except subprocess.CalledProcessError as e:
print(f"Linux元数据添加失败: {e}")
return False
def add_macos_metadata(file_path, metadata):
"""macOS系统下添加扩展属性"""
try:
for key, value in metadata.items():
cmd = f'xattr -w com.apple.metadata:{key} "{value}" "{file_path}"'
subprocess.run(cmd, shell=True, check=True)
return True
except subprocess.CalledProcessError as e:
print(f"macOS元数据添加失败: {e}")
return False
def batch_add_metadata(directory, metadata, recursive=False):
"""批量添加文件元数据"""
path = Path(directory)
system = platform.system()
count = 0
pattern = '**/*' if recursive else '*'
for file_path in path.glob(pattern):
if file_path.is_file():
try:
if system == "Windows":
success = add_windows_metadata(str(file_path), metadata)
elif system == "Linux":
success = add_linux_metadata(str(file_path), metadata)
elif system == "Darwin":
success = add_macos_metadata(str(file_path), metadata)
else:
print(f"不支持的系统: {system}")
return
if success:
print(f"✓ 已处理: {file_path.name}")
count += 1
except Exception as e:
print(f"✗ 处理失败: {file_path.name} - {e}")
print(f"\n完成!成功处理 {count} 个文件")
# 使用示例
if __name__ == "__main__":
target_dir = input("请输入目标目录路径: ").strip()
# 定义要添加的元数据
metadata = {
"author": "脚本自动添加",
"creation_date": datetime.datetime.now().strftime("%Y-%m-%d"),
"processed_by": "batch_add_metadata.py"
}
recursive = input("是否递归处理子目录? (y/n): ").strip().lower() == 'y'
batch_add_metadata(target_dir, metadata, recursive)
Linux Bash 脚本 - 批量添加扩展属性
#!/bin/bash
# batch-add-xattr.sh
# 批量在Linux系统下添加文件扩展属性
# 设置目标目录
TARGET_DIR="/path/to/your/files"
RECURSIVE=false
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# 设置要添加的属性
AUTHOR="管理员"
COMMENT="通过脚本批量添加"
VERSION="1.0"
# 检查setfattr是否可用
if ! command -v setfattr &> /dev/null; then
echo -e "${RED}错误: setfattr 未安装,请先安装attr包${NC}"
echo "Ubuntu/Debian: sudo apt-get install attr"
echo "CentOS/RHEL: sudo yum install attr"
exit 1
fi
# 处理函数
process_file() {
local file="$1"
# 添加扩展属性
if setfattr -n user.author -v "$AUTHOR" "$file" && \
setfattr -n user.comment -v "$COMMENT" "$file" && \
setfattr -n user.version -v "$VERSION" "$file"; then
echo -e "${GREEN}✓${NC} $file"
return 0
else
echo -e "${RED}✗${NC} $file"
return 1
fi
}
# 批量处理
echo "开始批量添加扩展属性..."
count=0
total=0
if [ "$RECURSIVE" = true ]; then
while IFS= read -r -d '' file; do
((total++))
if process_file "$file"; then
((count++))
fi
done < <(find "$TARGET_DIR" -type f -print0)
else
for file in "$TARGET_DIR"/*; do
if [ -f "$file" ]; then
((total++))
if process_file "$file"; then
((count++))
fi
fi
done
fi
echo -e "\n完成!成功处理 ${count}/${total} 个文件"
使用说明
Windows PowerShell
# 运行前请设置执行策略 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned # 运行脚本 .\batch-add-file-properties.ps1
Python脚本
# 安装依赖(如果有的话) pip install pathlib # Python 3.4+ 内置 # 运行脚本 python batch_add_metadata.py
Linux Bash脚本
# 给脚本添加执行权限 chmod +x batch-add-xattr.sh # 运行脚本 ./batch-add-xattr.sh
注意事项
-
文件系统兼容性:
- NTFS扩展属性:Windows专用
- ext2/3/4扩展属性:Linux专用
- HFS+/APFS扩展属性:macOS专用
-
权限要求:
- Windows:需要文件写入权限
- Linux/macOS:可能需要sudo权限
-
备份建议:
- 处理大量文件前建议先备份
- 可以先在小范围测试
-
属性类型限制:
- 扩展属性的名称和值有长度限制
- 某些特殊字符可能需要转义
根据您的具体需求选择合适的脚本,并根据实际系统环境调整代码。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播