если вы просто хотите удалить символы для списка, вы можете поместить следующее в пакетный файл, заменив соответствующий каталог на dirname
for /f "tokens=2 delims=_" %%G in ('dir /b dirname') do @echo %%G
dir /b производит голый список каталогов формат (без информации заголовка или резюме). The delims=_ указывает, что символ подчеркивания должен использоваться в качестве разделителя и tokens=2 указывает, что вы хотите, что после подчеркивания. См.FOR / F для более полного объяснения того, как используйте FOR /F в пакетном файле.
но если вы хотите переименовать файлы без цифр и подчеркивания, в вашем примере у вас есть два файла, которые дадут имя filename2.txt если числа и подчеркивание были удалены. Что вы хотите сделать в этом случае? Или вы намеревались использовать filename3.txt для третьего файла?
если после символа подчеркивания следует уникальное имя, можно использовать
после переименовать файлы, подставив соответствующий каталог для relevantdir:
set dirname="relevantdir"
for /f "tokens=1,2 delims=_" %%G in ('dir /b %dirname%') do rename %dirname%\%%G_%%H %%H
в вышеуказанном случае, первый знак внимания,%%G, что до подчеркивания и второй маркер, %%H это то, что после подчеркивания. Я собрал их вместе для операции переименования и предварял их каталогом, так как команда rename использует синтаксис RENAME [drive:][path]filename1 filename2.
поставить @echo off в первой строке в батник перед set команда, если вы не хотите видеть каждую операцию переименования, как это происходит.