繁体   English   中英

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

[英]Batch Script Removing characters from a variable inside a FOR loop

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

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

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

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

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

set "var=%%A"

它独立于隐藏的空间,甚至在最后一个引用后也忽略了追逐者。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM