если вы просто хотите удалить символы для списка, вы можете поместить следующее в пакетный файл, заменив соответствующий каталог на 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
команда, если вы не хотите видеть каждую операцию переименования, как это происходит.