我需要创建一个脚本,它将从大量文件(具有不同名称)中删除前六个字符。我从另一个问题尝试了这个例子,但我想更好地理解它:
@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 in - %X%!我实际上修剪了文件夹中所有文件的X个第一个字符。我不知道〜%X%是什么 - 我只能看到如果它不是一个高于0的数字,脚本就不会运行。我也不知道X = 3的集合是什么 - 我只能看到它是否存在于bat文件中没有区别。有人可以向我解释这个文件的语法吗?
提前致谢!
答案 0 :(得分:1)
该方法称为子串。
您可以在此处查看大量示例和说明: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 强>“
我希望这会有所帮助。