Windows CMD - 如何将 .txt 附加到文件夹及其嵌套子文件夹中所有无扩展名文件的名称之后?

Windows CMD - 如何将 .txt 附加到文件夹及其嵌套子文件夹中所有无扩展名文件的名称之后?

我将所有文件从 Ubuntu 复制到了新的 Windows 10 计算机。其中许多文件(实际上有数千个)都是没有扩展名的纯文本文件...

每次我尝试在 Windows 中打开这些文件时,它都不知道要使用哪个应用程序,所以它会询问我。然后我必须先单击“EditPad Lite”图标(我的纯文本文件默认应用程序),然后单击“确定”按钮。只有这样,Windows 才会最终打开该文件。你可以想象,当我计划手动打开和查看所有这些文件时,这是一个很大的麻烦。

请注意,当我执行上述步骤时,Windows 不会给我一个复选框选项“始终使用此应用程序打开此类文件”,因此显然 Windows 不知道没有扩展名的文件是什么类型。我从 Ubuntu 迁移到 Windows 时没有预料到这个问题,因为显然 Ubuntu 知道没有扩展名的文件是什么类型。

理想情况下,我可以将 Windows 配置为始终使用 EditPad Lite(或其他基于 Windows 的文本编辑器)自动打开没有扩展名的文件,但这似乎是不可能的——或者至少我没有找到任何在线信息来解释如何做到这一点。所以如果这真的可行,你能告诉我怎么做吗?

或者我的第二最佳选择(或者无论如何这也许是更好的选择?)是让 Windows 批量重命名所有无扩展名的 Ubuntu 文件,方法是在其名称后附加 .txt:

我从 Ubuntu 复制到 Windows 计算机的所有文件都位于我的主文件夹或主文件夹的嵌套子文件夹中。我的主文件夹中可能有十几个或更多的嵌套子文件夹级别,因此我用来重命名无扩展名文件的任何脚本都需要在我所有的嵌套子文件夹中找到并重命名这些文件。

您能否发布一个我可以用来执行此批量重命名任务的脚本?

答案1

我知道以某种方式可以递归地完成这项任务,但是没有人在这个帖子中发布答案,所以谷歌最终帮助我在另一个论坛上找到了成功的方法。

以下是通过命令行(而不是通过批处理文件)对我有用的方法。第一个命令进入正确的主目录,第二个命令以递归方式将 .txt 附加到该目录及其所有子目录中的所有无扩展名文件:

cd \Users\Fred\Documents\test

for /r %x in (*.) do ren "%x" *.txt

答案2

@echo off

cd /d "d:\full\path\folder"

for /f delims^= %%i in (`where /r . *.')do ren "%%~i" "%%~ni.txt"

答案3

rename *. *.txt- 确保第一个 . 和 * 之间有一个空格

这会将 .txt 添加到所有没有扩展名的文件 - 非递归,因此在每个文件夹中单独执行此操作

答案4

我有类似的文件

log.txt.01
log.txt.02
log.txt.03

而且,我需要将它们重命名为:

log01.txt
log02.txt
log03.txt

我尝试了下面的批处理文件脚本并且它起作用了。

@echo off
Setlocal enabledelayedexpansion

Set "Pattern=.txt."
Set "Replace="

For %%a in (*.*) Do (
    Set "File=%%~a"
    Ren "%%a" "!File:%Pattern%=%Replace%!"
)
for /r %%x in (*.) do ren "%%x" *.txt

相关内容