【发布时间】:2011-09-20 18:13:18
【问题描述】:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (*.*) DO (
SET var=%%A
ECHO !var:~0,-4!
)
由于我们在 FOR 循环中迭代变量,因此您必须在变量周围使用 !,但是,结合方法 :~#,-# 从变量末尾删除字符,它不会拿走。
在我的示例中,我们只是从文件名中删除扩展名。我知道您可以使用%%~nA 来获取文件名,但这只是一个使用示例。
有没有办法在 FOR 循环中做到这一点?也许与我使用的方法不同?
【问题讨论】:
-
您发布的上述示例对我有用 - 也就是说,它删除了文件名中的最后 4 个字符(如果文件名中的字符超过 4 个)。
-
这对我来说没问题。我只是复制了这个,没有做任何改变,只是在开头添加了
@ECHO OFF。运行此脚本时有什么特别的问题? -
LOL 我想我在不知不觉中解决了自己的问题 =/。现在,如果我能在 XD 之前弄清楚我做错了什么就好了。
标签: variables for-loop expand batch-file