Tag: Python

  • 大神桌面整理脚本,win7-win11按时间归档桌面文件

    大神桌面整理脚本,win7-win11按时间归档桌面文件

    每天工作中,我们经常需要处理大量的文件,这些文件可能包括文档、图片、下载文件等等。随着时间的推移,这些文件堆积在桌面上,使得桌面变得混乱不堪。有时候,为了整理桌面,我们不得不手动移动文件,而这往往容易导致误删有用的文件,造成不必要的麻烦。

    为了解决这个痛点,有些人尝试使用Python3、AHK等编程语言编写桌面整理脚本,来自动化整理桌面文件。然而,编写和维护这些脚本需要一定的编程知识,对于非技术人员来说可能并不容易。因此,有人决定采用更简单的方法,使用批处理(bat)语言开发一个桌面整理工具,以方便自己和其他人使用。

    在本教程中,我们将介绍如何使用这个自动桌面整理工具,它可以帮助你快速整理桌面上的文件,让你的工作环境更加整洁有序。

    2. 使用桌面整理工具

    2.1 下载和配置工具

    首先,你需要下载桌面整理工具的批处理脚本。

    下载完成后,将文件后缀名修改为.bat,确保它是一个可执行的批处理文件。

    源代码

    复制保存为bat即可使用

    @echo off
    set title_T=桌面便捷整理工具  --By:dashen.wang 文件修改时间:%~t0
    title %title_T%
    rem 格式化时间
    for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do (
      set tt=%%a
    )
    set Today=%tt:~0,4%-%tt:~4,2%-%tt:~6,2%
    set Time_T=%tt:~8,2%:%tt:~10,2%:%tt:~12,2%
    set y=%Today:~0,4%
    set m=%Today:~5,2%
    set d=%Today:~8,2%
    set t=%Time_T:~0,8%
    set t=%t::=.%
    set config_sort_dir=%AllUsersProfile%\Auto_Sort_Desktop_files\
    set config_sort_log=%AllUsersProfile%\Auto_Sort_Desktop_files\log
    set config_sort_file=%AllUsersProfile%\Auto_Sort_Desktop_files\config.ini
    rem 获取下桌面路径
    for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do (
    set desktop_dir=%%j
    )
    
    rem 判断配置文件夹以及配置文件是否存在,不存在创建
    if not exist "%config_sort_dir%" mkdir "%config_sort_dir%"
    if not exist "%config_sort_log%" mkdir "%config_sort_log%
    if not exist "%config_sort_log%\delete" mkdir "%config_sort_log%\delete"
    if not exist "%config_sort_file%" (goto first_Use) else (goto choice_config)
    :choice_config
    set ERRORLEVEL=
    choice /C YN /M "要重新配置请在5s内输入Y" /T 5 /D N
    if "%ERRORLEVEL%"=="1" goto re_config
    goto start_main
    
    :first_Use
    cls
    echo.
    echo =====================欢迎试用桌面自动整理工具=========================
    echo        1.检测到配置文件不存在,请对本工具进行一个简单的配置
    echo        2.可以直接拖放文件夹到本窗口,CMD会自动获取文件夹路径
    echo        3.只要选定一个文件夹,每次打开工具,工具会将桌面文件移动到
    echo          设定的文件夹下面,按照 选定文件夹\年\年-月-日\具体文件 
    echo          这种形式文件夹下面.
    echo        4.配置文件在%config_sort_dir%目录底下,日志也在此目录
    echo        5.关于日志,最多保存最近30天的文件,超过30天的,会移动到
    echo          配置文件夹log\delete目录下面,下次运行本工具的时候会
    echo          删除里面的所有文件,so不要放东西进去奥...
    echo                             欢迎试用.
    echo ======================================================================
    echo.
    echo ==========================配置模式选择================================
    echo        1.使用默认配置,自动归档桌面文件和文件夹到D:\原桌面
    echo        2.手工设定归档文件架
    echo ======================================================================
    echo.
    set /p config_style=请输入要使用的配置模式前面的数字,回车确认:
    set config_style=%config_style: =%
    if "%config_style%"=="1" goto default_config
    if "%config_style%"=="2" goto hands_config
    goto config_error
    
    :default_config
    echo auto_sort_dir=d:\原桌面 >>%config_sort_file%
    goto start_main
    :hands_config
    echo .
    echo 小提示:直接拖放文件夹到本窗口可以直接获取文件夹路径
    set /p hands_config_dir=请输入归档文件夹:
    rem 判断先是不是在系统盘,如果是,那就提示,这里就不判断是不是在桌面了,不好处理...关键字不能用,取前xx位判断貌似不太准,鬼知道用户的用户名多长......
    set input_disk=%hands_config_dir: =%
    set input_disk=%input_disk:~0,1%
    set system_disk=%systemroot:~0,1%
    rem 悲剧啊,找了别人写的转换大小写的批处理,活活看不懂T_T....用笨方法吧...
    set "code=aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ"
    setlocal EnableDelayedExpansion
    for %%i in (%code%) do (
    set code_T=%%i
    if "!input_disk!"=="!code_T:~0,1!" set input_disk=!code_T:~1,1!
    )
    for %%i in (%code%) do (
    set code_T=%%i
    if "!system_disk!"=="!code_T:~0,1!" set system_disk=!code_T:~1,1!
    )
    setlocal DisableDelayedExpansion
    
    if "%input_disk%"=="%system_disk%" goto dir_error
    echo auto_sort_dir=%hands_config_dir% >>%config_sort_file%
    goto start_main
    
    :start_main
    goto read_config
    :start_move_file
    if not exist "%auto_sort_dir%" mkdir "%auto_sort_dir%"
    if not exist "%auto_sort_dir%\%y%\" mkdir "%auto_sort_dir%\%y%\"
    if not exist "%auto_sort_dir%\%y%\%y%-%m%-%d%\" mkdir "%auto_sort_dir%\%y%\%y%-%m%-%d%\"
    echo robocopy %desktop_dir%\ %auto_sort_dir%\%y%\%y%-%m%-%d%\ /E /MOVE  /XF *.lnk
    robocopy %desktop_dir%\ %auto_sort_dir%\%y%\%y%-%m%-%d%\ /V /LOG+:%config_sort_log%\%y%-%m%-%d%.log /E /MOVE  /XF *.lnk
    if exist "%desktop_dir%\归档文件夹.lnk" del /q /f "%desktop_dir%\归档文件夹.lnk"
    if exist "%desktop_dir%\开始归档桌面文件.lnk" del /q /f "%desktop_dir%\开始归档桌面文件.lnk"
    
    set SrcFile=%auto_sort_dir%\%y%\
    set Icon=%systemroot%\System32\shell32.dll,301
    set LnkFile=%desktop_dir%\归档文件夹
    call :CreateShort "%SrcFile%" "%LnkFile%" "%Icon%"
    set SrcFile=%~dpnx0
    set Icon=%systemroot%\system32\shell32.dll,80
    set LnkFile=%desktop_dir%\开始归档桌面文件
    call :CreateShort "%SrcFile%" "%LnkFile%" "%Icon%"
    
    goto handle_logfile
    
    :handle_logfile
    rem 啥?这不是只删除.log文件啊,上面你说删除所有的啊......呵呵哒,吓唬你不行啊
    del /s /q /f %config_sort_log%\delete\*.log >>%config_sort_log%\%y%-%m%-%d%.log
    rem 将30天前的文件移动到delete文件夹
    robocopy %config_sort_log% %config_sort_log%\delete /E /MOVE /MINAGE:30 /LEV:1
    goto good_job
    
    :config_error
    cls
    echo .
    echo ========================配置模式选择错误==============================
    echo        很抱歉,配置模式选择错误,请重新输入
    echo        你的输入为: %config_style%
    echo ======================================================================
    ping 127.0.0.1 -n 3 >nul
    goto first_Use
    
    :dir_error
    cls
    echo .
    echo ========================归档路径配置错误==============================
    echo        很抱歉,归档路径选择错误,不允许使用系统盘,请重新配置
    echo        你的配置的文件夹为: %hands_config_dir%
    echo ======================================================================
    ping 127.0.0.1 -n 3 >nul
    goto first_Use
    
    :read_config
    setlocal EnableDelayedExpansion
    for /f "tokens=2 delims==" %%a in ('find "auto_sort_dir" "%config_sort_file%"') do (
    set auto_sort_dir=%%a
    )
    setlocal DisableDelayedExpansion
    goto del_space
    :del_space
    set space=%auto_sort_dir:~-1%
    if "%space%" NEQ " " (goto start_move_file) else (
    set auto_sort_dir=%auto_sort_dir:~0,-1%
    goto del_space
    )
    :CreateShort
    mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.IconLocation=""%~3"":b.WorkingDirectory=""%~dp1"":b.Save:close")
    goto :eof
    :re_config
    cls
    setlocal EnableDelayedExpansion
    for /f "tokens=2 delims==" %%a in ('find "auto_sort_dir" "%config_sort_file%"') do (
    set auto_sort_dir=%%a
    )
    setlocal DisableDelayedExpansion
    echo .
    echo ========================当前配置==============================
    echo           当前配置目录:%auto_sort_dir%
    echo           1.重新配置
    echo           2.呃呃呃,按错了,放我回去
    echo ==============================================================
    echo .
    echo.
    set /p re_config_num=请输入要使用的配置模式前面的数字,回车确认:
    set re_config_num=%re_config_num: =%
    if "%re_config_num%"=="1" goto first_Use
    if "%re_config_num%"=="2" goto start_main
    
    :good_job
    cls
    echo .
    echo ========================归档完毕==============================
    echo                        已归档完毕
    echo              程序将在10s后退出,欢迎再次使用
    echo ==============================================================
    echo .
    ping 127.0.0.1 -n 10 >nul
    goto exit_me
    
    :exit_me
    exit

    2.2 配置工具

    运行批处理文件后,你将进入配置模式,可以根据你的需求进行配置。有两种配置模式可供选择:

    2.2.1 默认配置模式

    默认配置模式会自动将桌面上的文件和文件夹整理到D:\原桌面目录下。

    2.2.2 手动配置模式

    手动配置模式允许你自定义归档文件夹的路径。你可以输入你想要的路径,工具会自动将桌面文件整理到该目录下。

    2.3 使用工具整理桌面

    配置完成后,你可以关闭配置窗口,回到主界面。此时,工具会自动将桌面上的文件和文件夹按照你的配置整理到指定的目录下。整理过程将会生成日志,记录整理的详细信息。

    工具还会创建两个快捷方式,一个是指向归档文件夹的快捷方式,另一个是开始桌面文件整理的快捷方式,方便你随时使用。

    整理效果 整理效果

    2.4 日志管理

    工具会定期清理日志文件,只保留最近30天的日志。超过30天的日志将会被移动到配置文件夹下的log\delete目录中,下次运行工具时会被删除。

    3. 结语

    通过使用这个桌面整理工具,你可以轻松解决桌面混乱的问题,让你的工作环境变得更加整洁有序。不再需要手动整理文件,不再担心误删有用的文件,节省了大量的时间和精力。

    如果你经常需要处理大量文件,并且希望保持桌面的整洁,这个工具将会是你的得力助手。不需要编程知识,只需简单的配置,就能享受到自动整理桌面的便利。

    下载并尝试使用这个桌面整理工具,让你的工作更加高效和愉快。

    希望本教程对你有所帮助,如果你有任何问题或疑问,请随时联系作者或留言,作者会尽力提供帮助。


    在本教程中,我们介绍了如何使用桌面整理工具来解决桌面混乱的问题。通过简单的配置,你可以轻松实现桌面文件的自动整理,提高工作效率。

  • 优秀开源的github搜索引擎项目searX

    优秀开源的github搜索引擎项目searX

    你是否曾因需要在互联网上搜索信息而感到困扰?谷歌在搜索引擎领域表现出色,但由于一些原因,我们有时候不得不转向百度。此外,还有一些其他搜索引擎,如Bing、搜狗、360等,各自具有特色和支持不同的功能。例如,搜狗支持搜索微信中的内容,如公众号文章等。

    然而,除了这些主流搜索引擎外,还存在一些小众但强大的搜索引擎,如基于智能AI技术的Magi和注重隐私的DuckDuckGo等。

    在工作时,你可能使用谷歌搜索,但回到家时,你可能更愿意使用微软的Bing搜索引擎。有时候,如果在Bing上找不到满意的结果,才会回到百度。

    那么,是否有一种搜索引擎可以智能地汇总所有搜索引擎的结果呢?答案是肯定的!最近,我发现了一个免费的开源项目——searX,它可以完美解决你的搜索烦恼。

    searX搜索引擎 searX搜索引擎

    searX简介

    searX是一个基于Python的完全开源免费搜索引擎平台,可以提供来自Google、Bing、Yahoo等70多种搜索服务的结果,包括文件、图片、地图、音乐、新闻、学术、社交、视频、磁力等网站结果,并对搜索结果进行优化。与此同时,searX不会存储你的任何搜索信息,是一个完全免费开源、尊重隐私的搜索引擎平台。

    使用searX时,它会将设置好的所有搜索引擎的结果进行整合,然后按优先级排序,呈现在一个页面中。整个搜索页面干净清爽,支持查看页面缓存。它还提供搜索建议、下载搜索结果和RSS订阅功能。

    你可以使用searX搜索文件、图片、地图、音乐、新闻、学术、社交、视频等,这里不再详细演示,因为本文的重点是如何部署一个完全属于自己的searX。你可以通过searX传送门进行搜索体验!

    searX首选项和搜索自定义设置

    searX不仅提供基本设置,还支持丰富的自定义设置,以使搜索体验更符合个人需求。你可以设置默认的搜索语言、界面语言、自动补全字词、安全搜索过滤、主题风格、主题样式、在新标签页中打开搜索链接等。

    除了基本设置,searX还允许你为综合搜索、文件搜索、图片搜索、视频搜索等每个搜索类型单独设置搜索引擎,这是非常强大的功能。

    此外,searX还提供了插件设置,支持开启强制HTTPS链接访问、自动加载下一页搜索结果、搜索类别选择、移除跟踪链接、Vim快捷键等功能,根据需求进行设置即可。

    searX部署教程

    要拥有自己的searX搜索引擎网站,你需要一台服务器,并且如果需要支持Google等服务,服务器最好是国外的。下面是searX的部署教程:

    安装pip

    在CentOS和Ubuntu系统上安装pip的命令如下:

    # CentOS 6.x 32位
    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    yum install -y python-pip
    
    # CentOS 6.x 64位
    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    yum install -y python-pip
    
    # CentOS 7.x
    yum install -y epel-release
    yum install -y python-pip
    
    # Debian/Ubuntu系统
    apt-get -y update
    apt-get -y install python-pip

    安装git

    安装git是为了拉取searX的源代码,CentOS和Ubuntu系统上的命令如下:

    # Debian/Ubuntu系统
    apt-get install git -y
    
    # CentOS系统
    yum install git -y

    安装searX

    安装searX需要两步:下载searX的源码和安装运行所需的依赖包。以下是安装searX的命令:

    # 拉取源码
    git clone https://github.com/asciimoo/searx.git
    
    # 安装依赖
    cd searx
    pip install -r requirements.txt

    配置searX

    完成安装后,需要修改searX的项目配置文件,如端口号、搜索语言等。配置文件位于searX/settings.yml,你可以使用任何编辑器进行编辑。

    # 修改language,默认为中文搜索结果
    sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml
    
    # 修改secret_key
    sed -i "s/ultrasecretkey/$(openssl rand -hex 16)/g" searx/settings.yml
    
    #
    
     修改base_url,为你的服务器地址
    sed -i 's/base_url : ""/base_url : "http://yourdomain.com"/g' searx/settings.yml
    
    # 修改port,为你要监听的端口号
    sed -i 's/port : 8888/port : 8080/g' searx/settings.yml

    启动searX

    现在,你可以启动searX并运行它了:

    python searx/webapp.py

    searX将运行在你配置的端口上(默认为8080),你可以在浏览器中访问它。

    配置反向代理(可选)

    如果你希望通过域名访问searX,并且希望使用HTTPS加密连接,可以考虑配置反向代理。这里以Nginx为例,配置文件如下:

    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    保存并退出配置文件,然后重新加载Nginx配置:

    service nginx reload

    现在,你可以通过访问http://yourdomain.com 来使用你的自己部署的searX搜索引擎了。

    总结

    通过部署自己的searX搜索引擎,你可以获得强大的搜索功能,同时保护了你的隐私。尽管部署过程需要一些技术操作,但一旦设置完成,你将拥有一个强大的搜索引擎,可以在搜索结果中智能地整合各种搜索引擎的结果。这使你能够根据自己的需求和偏好来自定义搜索结果,提高了搜索效率。

    另外,searX的开源性质也意味着你可以根据自己的需要进行自定义开发和定制。如果你拥有一台服务器,并且想要更好地掌控自己的搜索体验,不妨尝试部署searX,享受更私密、多样化和自定义的搜索体验吧!