batch-file - CMD:根据文件夹名称的前 8 个字符批量重命名文件夹中文件的脚本

标签 batch-file cmd

我正在尝试重命名文件夹中的 dbf 文件。下面的批处理脚本当前设置为将文件重命名为其当前名称。如何修改语法以仅使用前 8 个字符(包括 .dbf 扩展名)重命名文件?我试过使用“%%~nx:~8.dbf”作为目标名称,但它似乎不起作用。谢谢!

for %%x in ("C:\Users\user\Documents\monthly_adhoc\importclm\*.dbf") do (
rename "%%x" "%%~nx.dbf")

输入文件应该是这样的:

12345678_XXXXXXX_KKKKKK.dbf

12364178_XXXXXXX_KKKKKK.dbf

12124668_XXXXXXX_KKKKKK.dbf

12342178_XXXXXXX_KKKKKK.dbf

我希望输出文件是这样的。

12345678.dbf

12364178.dbf

12124668.dbf

12342178.dbf

最佳答案

这应该可以做到。

@echo off
setlocal EnableDelayedExpansion
for %%x in ("C:\Users\user\Documents\monthly_adhoc\importclm\*.dbf") do (
  set newname=%%~nx
  ren "%%x" "!newname:~0,8!.dbf"
)

关于batch-file - CMD:根据文件夹名称的前 8 个字符批量重命名文件夹中文件的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733995/

相关文章:

php - 如何从PHP运行Docker?

powershell - 如何为要从提示符调用的 PowerShell 脚本设置别名?

c# - SlSvcUtil.exe 底层连接被关闭 : Could not establish trust relationship for the SSL/TSL secure channel

batch-file - 如何对 %%a 或 %1 等变量使用延迟扩展?

batch-file - 批处理文件,用于识别指定窗口是否打开,然后将其关闭

batch-file - 批处理脚本中的 sleep 函数

mysql - 批处理使用输入值更新查询

windows - 如何从 Windows 命令行创建共享文件夹?

c - 返回地址 GDB : . exe 与 .elf 不同?

windows - Lua os.execute 空终端