2013-04-23 37 views
0

我需要创建一个脚本,将从一个巨大的文件量除去前六个字符(名称不同)。我试过了这个例子从另一个问题,但我想更好地理解它:删除多个文件名的第一个字符用一个bat文件 - 什么是〜%X%,?

@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文件中没有区别。任何人都可以请向我解释这个文件的语法?

在此先感谢!

+0

如需帮助,请在命令行中输入“help set”(或等待,直到有人会在这个帖子中为您在这个有趣的论坛发帖....)。 – Endoro 2013-04-23 21:05:28

回答

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

我希望这有助于。

相关问题