У меня есть имя файлапакетный файл регулярное выражение, чтобы получить определенное число из файла
pp-sssss-iiii-12.0.111.22_31-i-P.0.16.1.1
Я хочу от имени только это (выход желаемого):
12.0.111.22_31
затем заменить .
с 0
и удалите '_', чтобы я получил ниже
1200011102231
хорошо я попытался начать с чего-то вроде этого
cd %cd%
for %%F in (*.txt) do echo %%~nxF >>1.txt
, но я не знаю, как продолжить
редактировать код:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=C:\Users\moudiz\Desktop\new folder\tttt"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*.pbd" '
) DO (
FOR /f "tokens=4delims=-" %%d IN ("%%a") DO (
SET "modname=%%d"
SET "modname=!modname:.=0!"
SET "modname=!modname:_=!"
ECHO %%a becomes !modname!
)
)
GOTO :EOF
pause
имя файла
P-Script-LogFiles-1.0.33.33_123-IB-P.0.16.357.1.pbd
выход 100033033123
Я хочу, чтобы результат находился в файле >> result.txt .. Я скопировал ваш пример, я разрешил этот '' dir/b/ad "% sourcedir% \ * .pbd" '', добавил' pause' и я запустил его, но он не работал – Moudiz
Извините - «это не сработало» не дает много подсказок. Используя имя файла, который вы назначили, 'pp-sssss-iiii-12.0.111.22_31-iP.0.16.1.1.txt' (я добавил' .txt', так как ваш опубликованный код использует маску '* .txt'), это рутинное 'echo'ed 'pp-sssss-iiii-12.0.111.22_31-iP.0.16.1.1.txt становится 1200011102231", которое вам, по-вашему, хотелось. Я понятия не имею, где '* .pbd' входит в картину. – Magoo
'.pbd' был связан со сценарием, который я делал. плохой пост в редактировании, как я скопировал ваш код, и точное имя файла в порядке? – Moudiz