Использование Windows REN для вставки текста в имя файла с сохранением оставшейся части имени? - PullRequest
0 голосов
/ 14 ноября 2018

В настоящее время я пытаюсь использовать команду REN для добавления текста в середине имени файла, сохраняя при этом оставшуюся часть имени файла.

Пример:

testfile_2018-11-14-06-06-23.pdf -> testfile_ABCD_2018-11-14-06-06-23.pdf

Последние шесть цифр могут быть изменены, поэтому мне нужно обозначить их подстановочными знаками.

В настоящее время у меня есть следующее:

REN testfile_2018-11-14*.pdf testfile_ABCD_2018-11-14*.pdf

Результат: testfile_ABCD_2018-11-146-23.pdf

Последние шесть цифр не сохраняются, и я не могу понять, почему.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Если мы предлагаем альтернативные решения для REN, в PowerShell есть несколько способов:

Разделение строк:

## Get a System.IO.FileInfo object to the file
$f = Get-Item path-to-the-testfile

## Split up the name by the underscore so the zeroth entry is 'testfile' and the first entry is the remaining name
$s = $f.Name.Split("_")

## Use String tokenization to recombine the different parts in the desired order during the rename
Rename-Item $f.FullName ("{0}\{1}_{2}_{3}" -f $f.DirectoryName, $s[0], 'ABCD', $s[1])

Замена строк:

## Get a System.IO.FileInfo object to the file
$f = Get-Item path-to-the-testfile

## Use string replace to fix the name during the rename operation
Rename-Item $f.FullName ($f.FullName.Replace('testfile_', 'testfile_ABCD_'))

Использование регулярных выражений возможно, но, вероятно, слишком сложно, если вы не знакомы с вышеуказанными методами.

0 голосов
/ 14 ноября 2018

Уверен, что это невозможно сделать с помощью простой команды REN. Однако вы можете использовать силу команды FOR /F для управления именем файла.

Из командной строки вы можете запустить это.

for /f "tokens=1* delims=_" %G IN ('dir /a-d /b "testfile_2018-11-14*.pdf"') do ren "%G_%H" "%G_ABCD_%H"

Это находит файл и затем разделяет имя файла по подчеркиванию. Затем он переименовывает его с дополнительной строкой в ​​новом имени файла.

Если вы собираетесь запустить это в пакетном файле, вы должны удвоить символы процента.

...