批处理文件从文件名中删除减号

批处理文件从文件名中删除减号

我正在尝试清理特定文件夹中的某些文件名,并且想知道如何创建批处理文件来从每个文件名开头删除减号。

我有一堆带有模式 -FileName.pdf 的文件,我想从前面删除减号,这样我就只剩下 FileName.pdf。

到目前为止,我有以下命令:

dir /B > Batch.txt
for /f "tokens=1,2" %i in (Batch.txt) DO ren "%i %j" %l

有没有更简单的东西我可以使用?

提前致谢

答案1

我想删除前面的减号

使用以下批处理文件:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b -*.pdf') do (
  set _fname=%%i
  echo ren %%i !_fname:~1!
  )

笔记:

  • 这将从与表达式匹配的所有文件名中删除第一个字符-*.pdf
  • 当您确定批处理文件可以正确重命名时,请替换echo ren为。ren

进一步阅读

  • Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
  • 目录- 显示文件和子文件夹的列表。
  • 启用延迟扩展- 延迟扩展将导致变量在执行时而不是在解析时扩展。
  • 对于/f- 循环命令以执行另一个命令的结果。
  • - 显示、设置或删除 CMD 环境变量。使用 SET 所做的更改将仅在当前 CMD 会话期间保留。
  • 设置本地- 设置选项来控制批处理文件中环境变量的可见性。

答案2

我用免费指挥官 XE它具有一个有用的多重命名功能,可让您在使用模式重命名一堆文件之前预览结果。

相关内容