标签: CMD

  • 如何高效批量重命名:告别杂乱文件,一键生成数字序列

    如何高效批量重命名:告别杂乱文件,一键生成数字序列

    犯有仓鼠症的玩家都知道,我们电脑里的学习资料多如牛毛,尤其是图片文件,命名杂乱无章,整理起来异常头疼。利用 Windows 自带的 CMD 和批处理脚本进行批量重命名,可以极大提升效率。下面我将为你提供一个从创建脚本到执行的完整方案。

    如何高效批量重命名:告别杂乱文件,一键生成数字序列

    📌 操作方法:使用批处理脚本

    通过创建一个批处理文件(.bat),你可以快速将指定目录下的所有 JPG 文件按数字序列重命名(例如 1.jpg, 2.jpg, 3.jpg …)。

    步骤 1:创建批处理文件

    1. 1.在需要批量重命名的图片文件夹中,​​右键​​ > ​​新建​​ > ​​文本文档​​。
    2. 2.打开新建的文本文件,将以下代码复制粘贴进去:
    @echo off
    setlocal enabledelayedexpansion
    
    set count=0
    for %%i in (*.jpg) do (
        set /a count+=1
        ren "%%i" "!count!.jpg"
    )
    
    echo 重命名完成!共重命名了 !count! 个文件。
    pause
    1. 点击​​文件​​ > ​​另存为​​。在保存对话框中:
      • •​​保存类型​​ 选择 ​​“所有文件”​​。
      • •​​文件名​​ 输入任意名称,但​​后缀必须为 .bat​(例如 批量重命名.bat)。
      • •​​编码​​ 建议选择 ​​ANSI​​ 以避免中文乱码。
    2. 点击​​保存​​。

    步骤 2:运行脚本

    双击运行刚刚保存的 .bat文件。脚本会自动将当前文件夹内所有 .jpg文件按顺序重命名为 1.jpg2.jpg3.jpg……命令行窗口会显示完成提示

    ⚠️ 重要注意事项

    1. ​备份文件​​:在执行批量重命名操作前,​​务必对原始文件进行备份​​。重命名操作通常是不可逆的,一旦执行难以恢复。
    2. 文件顺序​​:通过此方法重命名文件的​​顺序可能与你在资源管理器中所见的顺序不同​​,因为它依赖于 dir命令读取文件的顺序,这通常与文件创建时间等相关。如果需要严格按照特定顺序(如按修改时间、文件名排序),建议先对文件进行排序,或使用更强大的脚本工具(如 PowerShell 或 Python)。
    3. ​文件名冲突​​:确保目标文件夹中​​没有现成的 1.jpg2.jpg等文件​​,否则重命名时会因文件名冲突而失败。
    4. ​特殊字符与长路径​​:如果文件名中包含​​空格或特殊字符​​(如括号),在批处理命令中需要用​​双引号​​将文件名括起来。上述脚本已对此进行处理。极长的路径也可能导致命令失败。
    5. ​仅处理当前目录​​:此脚本默认只重命名​​批处理文件所在目录​​下的 JPG 文件,不会处理子文件夹中的文件。

    💡 扩展应用与技巧

    • •​​修改文件扩展名​​:如果你想批量修改其他类型的文件扩展名(如将所有 .png.crdownload改为 .png),只需修改脚本中的文件扩展名即可,或使用命令 ren *.crdownload *.png
    • •​​自定义命名格式​​:
      • •若想在数字前加​​前缀​​(如 photo_1.jpg),可将 ren "%%i" "!count!.jpg"改为 ren "%%i" "photo_!count!.jpg"
      • •若想保持数字编号的​​统一位数​​(如 0001.jpg0002.jpg),可修改脚本如下:
    @echo off
    setlocal enabledelayedexpansion
    set count=10000 # 从10000开始,利用字符串截取后4位
    for %%i in (*.jpg) do (
        set /a count+=1
        set newname=!count:~-4! # 提取后四位数字
        ren "%%i" "!newname!.jpg"
    )
    pause
    • •​使用 Excel 辅助复杂重命名​​:对于非常复杂、无规律的重命名需求(例如每个文件的新名都不同),可以先用 dir /b *.jpg > filenames.txt命令导出原文件名列表到文本文件,然后在 Excel 中加工,生成所有 ren命令,最后复制回批处理文件执行。

    🔄 替代方案:文件资源管理器快速重命名

    如果需求很简单,只是需要快速加上序列号,Windows 文件资源管理器本身就提供了一个快捷方法

    在文件夹中​​全选​​(Ctrl + A)所有要重命名的 JPG 文件。

    1. 按下 ​​F2​​ 键,或右键点击第一个文件选择​​重命名​​。
    2. 输入一个基础名称(如 学习资料),然后按回车键。
    3. 系统会自动将所有文件命名为 学习资料 (1).jpg学习资料 (2).jpg学习资料 (3).jpg……。

  • windows怎么找查当前目录下所有TXT文件里的内容

    windows怎么找查当前目录下所有TXT文件里的内容

    在一些整理文档场景中,我们不知道文档内会有什么内容,又不知道如何通过内容来归类,可以用以下方法进行操作,即可得到我们想要的内容。

    运用批处理,新建一个txt文档,再把后缀改成bat,右链编辑此bat文件,把以下代码复制,粘贴进去。

    然后保存为u-tf8编码。点击运行。

    #需要注意的是:这个批处理会把当前所在目录下所有的TXT文件都会查收,所以建议是最好是先新建一个文件夹再把这个文件以及所有的TXT文档都COPY在一起,

    windows怎么找查当前目录下所有TXT文件里的内容

    然后通过在当前窗口处输入CMD调出,命令提示符。再把BAT文件拖进提示符内执行。

    windows怎么找查当前目录下所有TXT文件里的内容

    比如,我输入叶凡,它即会执行查找当前目录下所有TXT文档内含有“叶凡”两个字的文件,及出现的次数统计。

    windows怎么找查当前目录下所有TXT文件里的内容

    并保存一份统计文档

    windows怎么找查当前目录下所有TXT文件里的内容

    代码如下:

    @echo off
    chcp 65001 > nul
    setlocal enabledelayedexpansion

    echo =====================================
    echo *脚本名称: txt_content_search.bat*
    echo *功能: 搜索当前目录及子目录TXT文件中*
    echo *包含指定内容的匹配次数*
    echo *作者: Leepoet*
    echo *日期: 2025-09-05*
    echo =====================================

    REM 设置UTF-8编码支持中文

    :: 初始化结果文件
    set “resultFile=search_results_%date:~0,4%%date:~5,2%%date:~8,2%.txt”
    if exist “%resultFile%” del “%resultFile%”

    :: 用户输入
    :input
    echo 请输入要查找的文本内容:
    set /p “searchText=”
    if “!searchText!”==”” (
    echo 错误:内容不能为空!
    goto :input
    )

    :: 搜索处理
    echo [查找内容]: !searchText! > “%resultFile%”
    echo ============================ >> “%resultFile%”
    echo 文件路径 匹配次数 >> “%resultFile%”
    echo ————————— >> “%resultFile%”

    set /a totalCount=0
    for /r %%f in (*.txt) do (
    findstr /i /c:”!searchText!” “%%f” >nul && (
    set /a count=0
    for /f %%a in (‘findstr /i /c:”!searchText!” “%%f” ^| find /c /v “”‘) do set /a count=%%a
    set /a totalCount+=count
    echo %%~ff !count! >> “%resultFile%”
    )
    )

    :: 结果汇总
    echo ============================ >> “%resultFile%”
    echo 总匹配文件数: %totalCount% >> “%resultFile%”
    if %totalCount% gtr 0 (
    echo 搜索完成!结果已保存到 %resultFile%
    start “” “%resultFile%”
    ) else (
    echo 未找到包含指定内容的TXT文件
    del “%resultFile%”
    )
    endlocal