![有没有办法在DOS批处理文件编程中获取文件名的前几个字符](https://linux22.com/image/1231590/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%9C%A8DOS%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E7%BC%96%E7%A8%8B%E4%B8%AD%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E5%89%8D%E5%87%A0%E4%B8%AA%E5%AD%97%E7%AC%A6.png)
我在我的程序中使用它
for %%I in (*.txt) do (
文件名为%%I
。
现在我想分别分离前 2 个字符和接下来的 3 个字符。
这在 DOS 或 Cmd.exe 中可行吗?
答案1
http://www.dostips.com/DtTipsStringManipulation.php
set first2=%%I:~0,2% && set next3=%%I:~3,3%
我想..哎呀,已经有一段时间了!
答案2
@echo off
setlocal enabledelayedexpansion
for %%a in (*.mp3) do (
set oldName=%%a
Set newName=!oldName:~3!
Ren "!oldName!" "!newName!" )
exit
_Strip 3.cmd 是一个不错的保存名称。对我来说很管用。我有它(.mp3)仅适用于 mp3 文件...您可以将其更改为(.*)
如果您愿意,请将 ~3! 更改为另一个数字......~4! 将截断文件名的前 4 个字符。
答案3
在 Powershell 中:
$first2=$string.substring(0,2)
$next3=$string.substring(2,3)