如何从大量文件中删除文件扩展名?

问题描述 投票:-2回答:2

我不小心把一个png扩展名放在git文件夹中的某些文件中。如何撤消此操作?有没有git承诺这样做?

batch-file
2个回答
3
投票
forfiles /S /M *.ext /C "cmd /c rename @file @fname" 

找到here

当使用命令/ S时,此代码将重新命名文件夹和子文件夹中的所有文件。命令/ M定义搜索掩码以查找将重命名的所需文件类型。 / C定义必须在循环中的所有所需文件上执行以下代码。有关参数类型的更多信息可以在Microsoft documentation中找到。


0
投票

我会使用for /R循环,其中/R选项用于遍历所有子文件夹。在这种情况下,它将循环遍历所有子文件夹,搜索扩展名等于png的文件:

@echo off

for /R "C:\folder\with\git" %%A IN (*.png) do ren "%%~fA" "%%~nA"

或者循环遍历dir命令,该命令将搜索所有子文件夹以查找扩展名为png的文件(更安全,因为它使用/A-D选项排除了所有目录):

@echo off

for /F "delims= eol=" %%A IN ('dir /S /B /A-D "C:\folder\with\git\*.png"') do ren "%%~fA" "%%~nA"

另外,我想改进上面Johann发布的forfiles解决方案,检查项目是否是文件并使用完整路径:

@echo off

forfiles /P "C:\folder\with\git" /S /M *.png /C "cmd /c ren @fpath @fname"

有关所用命令的更多信息,请将以下命令运行到新的cmd.exe控制台:

  • for /?
  • ren /?
  • forfiles /?
  • cmd /?
© www.soinside.com 2019 - 2024. All rights reserved.