首页 > 解决方案 > 保留文件名的前 30 个字符

问题描述

我有这段代码,它应该为目录中的每个文件名保留前 30 个字符......由于某种原因,这段代码不会截断名称。你能帮我理解为什么吗?

cd C:\Users\AGL\Documents\test

for /f "delims=" %%a in ('dir /b /a-d *.csv') do (
    set "name=%%~na"
    set "ext=%%~xa"
    setlocal enabledelayedexpansion
    set "nname=!name:~0,-30!"
     endlocal
)

pause

标签: batch-file

解决方案


我相信你试图这样做?

@echo off
setlocal enabledelayedexpansion
cd /d "C:\Users\AGL\Documents\test"
for /f "delims=" %%a in ('dir /b /a-d *.csv') do (
    set "name=%%~na"
    ren "%%~a" "!name:~0,16!%%~xa"
)
pause

推荐阅读