批处理文件中的字符串符号操作

Bri*_*ndy 2 build-automation automated-tests dos batch-file

有没有办法使用.bat/.cmd文件获取字符串的子字符串?

例如,给定字符串"hello.txt"有没有办法剥离.txt?

编辑:还有一种更通用的方法来做到这一点,而不是假设它是一个文件名或文件路径?

And*_*ker 8

如果这是作为参数传递的文件,则可以使用%~n1,如下所示:

test.bat
----------
echo %~n1 %~n2

c:\> test.bat myfile.txt my.long.file.bat
  myfile my.long.file
Run Code Online (Sandbox Code Playgroud)

如果您知道字符串的长度,则可以使用子字符串运算符:

echo %variable:0,4%   =>  "test.txt" => "test"
Run Code Online (Sandbox Code Playgroud)

除了最后4个字符之外,还要获得所有内容:

echo %variable:~0,-4%  => "file...name.txt" => "file...name"
Run Code Online (Sandbox Code Playgroud)