微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除文件名中的特定数字

如何解决删除文件名中的特定数字

我正在构建一个批处理文件文件名中可能有也可能没有 10 位数字。如果是 10 位数字,我想删除一个数字。

更具体地说,前导数字可能是 1,在这种情况下,我希望将其删除

示例文件名:Softphone Test3_2020-12-08 15-23_13216549871.WAV

所需的输出Softphone Test3_2020-12-08 15-23_3216549871.WAV

在某些情况下,可能只有一个没有前导 1 的 9 位数字,这是可以的,应该保持不变。

如何实现?

解决方法

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
rem The following settings for the source directory,destination directory,target directory,rem batch directory,filenames,output filename and temporary filename [if shown] are names
rem that I use for testing and deliberately include names which include spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.

SET "sourcedir=u:\your files"
SET "destdir=u:\your results"

FOR /f "delims=" %%b IN ('dir /b /a-d "%sourcedir%\*.wav" ') DO (
 SET "namepart=%%~nb"
 IF "!namepart:~-11,1!" neq "_" ECHO REN "%sourcedir%\%%b" "!namepart:~0,-11!!namepart:~-10!.wav"
)
GOTO :EOF

提议的重命名已echo。将 ECHO REN 更改为 REN 以执行实际重命名。

,

我建议这个任务的代码:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
for /F "delims=" %%I in ('%SystemRoot%\System32\where.exe "*_???????????.wav" 2^>nul') do (
    set "FullName=%%I"
    set "FileName=%%~nxI"
    setlocal EnableDelayedExpansion
    ren "!FullName!" "!FileName:~0,-15!!FileName:~-14!"
    endlocal
)
endlocal

它仅处理文件名末尾带有十位数字的 WAV 文件,并通过从十位数字中删除第一位来重命名这些文件。

要了解使用的命令及其工作原理,请打开 command prompt 窗口,在那里执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • echo /?
  • endlocal /?
  • for /?
  • ren /?
  • set /?
  • setlocal /?
  • where /?

阅读有关 Using command redirection operators 的 Microsoft 文档以了解 2>nul。重定向运算符 > 必须在 FOR 命令行上用脱字符符 ^ 转义,以便在 Windows 命令解释器在执行命令 之前处理此命令行时被解释为文字字符FOR 在后台启动的单独命令进程中执行嵌入的 where 命令行,%ComSpec% /c' 中的命令行作为附加参数附加。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?