批处理脚本从FOR循环内的变量中删除字符

时间:2011-09-20 18:13:18

标签: variables for-loop expand batch-file

SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (*.*) DO (
 SET var=%%A
 ECHO !var:~0,-4!
)

由于我们在FOR循环中迭代变量,因此必须在变量周围使用!,然后结合方法:~#,-#从变量的末尾删除字符,它不需要。

在我的示例中,我们只是从文件名中删除扩展名。我了解您可以使用%%~nA来获取文件名,但这只是一个使用示例。

有没有办法在FOR循环中执行此操作?也许与我使用的方法不同?

1 个答案:

答案 0 :(得分:2)

如果set var=%%A后面有隐藏空格,则可能会失败 然后你只删除空格,因此最好使用

set "var=%%A"

它独立于隐藏的空间,甚至在最后一个引号后面都会忽略追逐者。

但也许你的问题是完全不同的类型?