Похожие вопросы

Пакетная команда для поиска и замены текста в тексте, содержащем не-TXT файл
VBScript захват StdOut из ShellExecute
Удаление разрывов строк из CSV для правильного импорта Excel
DelayedExpansion & Проблемы Замены Переменных
пакетный файл работает нормально вручную, но строка, которая запускает exe не удается при пакетном запуске в планировщике задач
Как получить доступ к cmd другого компьютера из cmd моего компьютера?
Xcopy a.txt по сети и добавить дату
Команда Windows для поиска имени папки с определенными символами и выберите его
Пакетный файл для опроса папки на наличие новых файлов
Пакетная конвертация изображений JPEG с помощью jpegtran в Windows
Массовое изменение размера / сжатие файлов TIFF [закрыто]
Пакетный скрипт останавливается после открытия Thunderbird
Использование a.bat-файл для извлечения строки из текстового файла в zip-папке
Anki-импорт одного CSV, создание нескольких колод и импорт в них
Включение / отключение беспроводного интерфейса в bat-файле

Как мне удалить часть имени файла для пакета файлов в Windows 8.1?

У меня есть много файлов в папке, но они все начинаются с цифр и отделяется от имени файла "_"

например:

123123123_filename.txt

456456456_filename2.txt

789789789_filename3.txt

Я предполагаю, что вы можете запустить какую-то команду, чтобы она удалила символы перед " _ "и"_".

любая помощь очень ценится!

5
задан trashfight
источник

3 ответов

Если вы не знакомы с PowerShell, вы можете взглянуть на бесплатные утилиты, как:http://www.bulkrenameutility.co.uk/Download.php

0
отвечен Kenneth Berg 2015-07-21 01:19:47
источник

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

0
отвечен moonpoint 2015-07-21 02:11:23
источник
powershell    
ls "*_*.txt" | %{mv -confirm:$false $_.name ($_.name).split("_")[1]}

powershell должно быть предпочтительнее на Win8.

0
отвечен chingNotCHing 2015-07-21 07:33:21
источник

Другие вопросы batch command-line filenames windows