当前位置:首页>python>《文件时间还在一个个改?Python调用PowerShell批量精准修改,一招解放生产力!!》

《文件时间还在一个个改?Python调用PowerShell批量精准修改,一招解放生产力!!》

  • 2026-09-03 09:34:07
《文件时间还在一个个改?Python调用PowerShell批量精准修改,一招解放生产力!!》

“带你横跨办公自动化的数据江海”

@摸鱼

前言

关于摸鱼

(

ABOUT MOYU

)

闻道有先后,术业有专攻。

各位大佬朋友们好!

~我依旧是你们的老朋友摸鱼~

在职场摸爬滚打的这十多年里,我用Python悄悄干了不少“正事”——不知不觉攒下了一整套办公自动化的实用项目技巧。去年10月初创立了公众号 「码海听潮」 ,初衷很简单:把重复的劳动交给代码,把摸鱼的时间留给生活。

目前已经吭哧吭哧更新了120多篇原创文章,每一篇都是实操干货,不讲虚的,只聊怎么用代码真正解放双手,帮大家早点下班、准点摸鱼

好了,多了不说,少了不唠,今天给大佬们分享一款本人原创的【文件时间批量修改工具】,这款小工具可以精确到秒批量修改文件的创建时间、修改时间和访问时间,支持单个文件精准修改和目录批量处理两种模式。它具备PowerShell脚本自动调用、时间格式智能验证、实时操作日志追踪和任务进度反馈功能,完美解决文件时间错乱、批量整理时间戳、需要逐个手动修改的痛点,特别适合文档归档时间统一、考试试卷时间标准化、项目文件时间批量整理等场景。

《办公工具成品展示:》

《该办公工具的演示视频:》

《该办公工具核心功能亮点:》

01

 亮点1:双模式灵活操作🎯

        02

         亮点2:PowerShell底层驱动多📱

            03

            亮点3:三维时间精准控制

            《该办公工具代码展示:》

            下面,我就用python代码让各位大佬见识一下,什么叫"传统文化"遇上"赛博效率"

            import sysfrom PyQt6.QtWidgets import (    QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,    QGroupBox, QLabel, QLineEdit, QPushButton, QTextEdit,    QRadioButton, QButtonGroup, QFileDialog, QMessageBox,    QFrame)from PyQt6.QtCore import Qtfrom PyQt6.QtGui import QFont, QTextCursorclass FileTimeModifierGUI(QMainWindow):    def __init__(self):        super().__init__()        self.init_ui()    def init_ui(self):        """初始化UI"""        self.setWindowTitle("文件时间批量修改工具(欢迎关注微信公众号:码海听潮)")        self.setGeometry(100, 100, 900, 800)        # 中央窗口        central_widget = QWidget()        self.setCentralWidget(central_widget)        main_layout = QVBoxLayout(central_widget)        main_layout.setSpacing(10)        main_layout.setContentsMargins(10, 10, 10, 10)        # ========== PowerShell 脚本设置 ==========        ps_group = QGroupBox("PowerShell 脚本设置")        ps_layout = QHBoxLayout()        self.ps_entry = QLineEdit()        self.ps_entry.setText("Set-FileTime.ps1")        ps_layout.addWidget(self.ps_entry)        self.browse_ps_btn = QPushButton("浏览脚本...")        ps_layout.addWidget(self.browse_ps_btn)        self.test_ps_btn = QPushButton("测试脚本")        ps_layout.addWidget(self.test_ps_btn)        self.ps_status_label = QLabel("⚪ 未检测")        ps_layout.addWidget(self.ps_status_label)        ps_group.setLayout(ps_layout)        main_layout.addWidget(ps_group)        # ========== 模式选择 ==========        mode_group = QGroupBox("操作模式")        mode_layout = QHBoxLayout()        self.single_radio = QRadioButton("单个文件")        self.batch_radio = QRadioButton("批量处理(目录)")        self.single_radio.setChecked(True)        self.mode_group = QButtonGroup()        self.mode_group.addButton(self.single_radio, 0)        self.mode_group.addButton(self.batch_radio, 1)        mode_layout.addWidget(self.single_radio)        mode_layout.addWidget(self.batch_radio)        mode_layout.addStretch()        mode_group.setLayout(mode_layout)        main_layout.addWidget(mode_group)        # ========== 路径选择 ==========        path_group = QGroupBox("文件/目录路径")        path_layout = QHBoxLayout()        self.path_entry = QLineEdit()        path_layout.addWidget(self.path_entry)        self.browse_path_btn = QPushButton("浏览...")        path_layout.addWidget(self.browse_path_btn)        path_group.setLayout(path_layout)        main_layout.addWidget(path_group)        # ========== 时间设置 ==========        time_group = QGroupBox("时间设置")        time_layout = QVBoxLayout()        # 创建时间        creation_layout = QHBoxLayout()        creation_layout.addWidget(QLabel("创建时间:"))        self.creation_entry = QLineEdit("2024-12-19 10:38:31")        creation_layout.addWidget(self.creation_entry)        creation_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS"))        creation_layout.addStretch()        time_layout.addLayout(creation_layout)        # 修改时间        mod_layout = QHBoxLayout()        mod_layout.addWidget(QLabel("修改时间:"))        self.modification_entry = QLineEdit("2024-11-01 12:00:00")        mod_layout.addWidget(self.modification_entry)        mod_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS"))        mod_layout.addStretch()        time_layout.addLayout(mod_layout)        # 访问时间        access_layout = QHBoxLayout()        access_layout.addWidget(QLabel("访问时间:"))        self.access_entry = QLineEdit("2024-12-18 12:00:00")        access_layout.addWidget(self.access_entry)        access_layout.addWidget(QLabel("格式: YYYY-MM-DD HH:MM:SS"))        access_layout.addStretch()        time_layout.addLayout(access_layout)        # 快捷按钮        button_layout = QHBoxLayout()        self.current_time_btn = QPushButton("设为当前时间")        button_layout.addWidget(self.current_time_btn)        self.original_time_btn = QPushButton("设为文件原始时间")        button_layout.addWidget(self.original_time_btn)        button_layout.addStretch()        time_layout.addLayout(button_layout)        time_group.setLayout(time_layout)        main_layout.addWidget(time_group)        # ========== 操作按钮(居中显示) ==========        action_container = QWidget()        action_layout = QHBoxLayout(action_container)        action_layout.setAlignment(Qt.AlignmentFlag.AlignCenter)        self.execute_btn = QPushButton("开始修改")        self.execute_btn.setStyleSheet("QPushButton { font-weight: bold; padding: 8px 25px; min-width: 100px; }")        action_layout.addWidget(self.execute_btn)        self.stop_btn = QPushButton("停止")        self.stop_btn.setEnabled(False)        self.stop_btn.setStyleSheet("QPushButton { padding: 8px 25px; min-width: 100px; }")        action_layout.addWidget(self.stop_btn)        self.clear_log_btn = QPushButton("清空日志")        self.clear_log_btn.setStyleSheet("QPushButton { padding: 8px 25px; min-width: 100px; }")        action_layout.addWidget(self.clear_log_btn)        main_layout.addWidget(action_container)        # ========== 日志输出 ==========        log_group = QGroupBox("日志")        log_layout = QVBoxLayout()        self.log_text = QTextEdit()        self.log_text.setReadOnly(True)        font = QFont("Consolas", 9)        self.log_text.setFont(font)        log_layout.addWidget(self.log_text)        log_group.setLayout(log_layout)        main_layout.addWidget(log_group)def main():    app = QApplication(sys.argv)    app.setStyle('Fusion')    window = FileTimeModifierGUI()    window.show()    sys.exit(app.exec())if __name__ == "__main__":    main()

            通过这款批量修改文件时间小工具,仅需几分钟配置好时间模板,即可自动完成原需逐一手动整理数百个文件时间属性的重复劳动。从最初面对杂乱时间戳的无奈与烦躁,到用自动化工具实现一键批量精准校正的轻松,工作效率获得指数级提升,终于解放了双手和时间!

            大佬们也可以举一反三,参照上面的代码思路根据自己工作中的实际情况来具体问题具体分析,实现自己定制化的需求。

            《该办公工具的应用场景:》

            场景
            说明

            下载文件整理

            批量调整下载文件的时间,便于归类查找

            个人资料库建设

            统一各类个人文档、资料的时间属性

            项目文档归档

            批量统一项目文件的创建和修改时间,方便版本管理

            合同文件标准化

            将一批合同文件的时间统一为签署日期

            结语

            当Python遇见办公,牛马打工人终于笑出了猪叫声

            【职场人必看】每天早上一睁眼,想到又要面对:

            1.📊 堆积如山的Excel表格

            2.📑 机械重复的复制粘贴

            3.✍️ 永远改不完的各类文档

            4.诸如此类的更多........

            是不是连Ctrl+Alt+Delete的心都有了?

            别慌!别急,摸鱼这位“职场外挂”已经带着Python代码来拯救你了!

            感谢各位大佬观看,还望各位大佬抬抬贵手一键三连,多多关注点赞转发评论,大佬们的支持才是摸鱼孜孜不倦更新原创干货的动力!

            另外,本篇文章的exe已上传nas私有云盘,有需要的大佬私信摸鱼君获取

            最新文章

            随机文章