我需要创建一个脚本,它将从大量文件中删除前6个字符(具有不同的名称)。我从另一个问题中尝试了这个例子,但我想更好地理解它:
@echo off
setlocal enabledelayedexpansion
set X=3
for %%f in (*) do if %%f neq %~nx0 (
set "filename=%%~nf"
set "filename=!filename:~%X%,-%X%!"
ren "%%f" "!filename!%%~xf"
)
popd我可以看到,在-%X%中修改X!实际上,我从文件夹中的所有文件中修剪了第一个字符的X号。我不知道~%X%是什么-我只能看到如果它不高于0,脚本就不会运行。我也不知道什么是集合X=3 -我只能看到无论它是否存在于bat文件中都没有区别。有人能给我解释一下这个文件的语法吗?
提前感谢!
发布于 2013-04-23 23:41:24
该方法称为子字符串。
您可以在这里看到许多示例和解释:http://ss64.com/nt/syntax-substring.html
第一个数字是开始索引,第二个数字是。
示例:
@echo off
Set "Filename=TestFile.txt"
Set "Filename=%Filename:~0,-4%"
Echo %FILENAME%
pause在这段代码中,我们从索引"0“(字符串的第一个字母)开始读取,然后停止在" -4”处读取,然后从0到-4进行子串运算,结果是:"TestFile“。
我希望这能帮到你。
https://stackoverflow.com/questions/16179049
复制相似问题