Заменить текстовые номера как имя файла в Notepad ++ - PullRequest
0 голосов
/ 01 апреля 2020

Мне нужно заменить некоторые числа, содержащиеся в моем тексте, на номер имени файла, например:

Имя файла: text-3.txt

  1. Текст бла бла бла, аааа. ..

Заменить это число на «1». по номеру 3, содержащемуся в имени файла. А также уберите это "." что осталось.

1 Ответ

0 голосов
/ 01 апреля 2020

Я собрал этот PowerShell для вас. То, что происходит, описано в комментариях, которые я добавил. Комментарии начинаются с "#". Если ваши соглашения об именах файлов отличаются от вашего примера 'text-1.txt', вам придется изменить эту строку на соответствующие соглашения об именах $target_files = gci $working_dir\* -include 'text*.txt' - в частности, что находится внутри аргумента -include.

Просто обновите это, если необходимо, и переменную $working_dir в этом скрипте, чтобы она соответствовала каталогу, с которым вы работаете.

# where to look for files
    $working_dir = "C:\Users\userNameHere\Desktop\Folder123"
# Find the files with get-childitem, put into variable.
    $target_files = gci $working_dir\* -include 'text*.txt'


# For every file, do the following
foreach($file in $target_files){
    # Read the file content with get-content
        $file_content = gc $file -raw
    # Create regex pattern to find the number for replacing
        $reg_pattern = '^.*\d+[.]'
    # Get the number out of the filename. 
        $file.Name -match "\d+" | Out-null
    [int]$file_number = $matches[0]


    # If we find a Number followed by a period in the content, replace it with the number we found in the filename
        if($file_content -match $reg_pattern){
           $file_content -replace $matches[0],$file_number | sc $file
        }

}

Вставьте это в блокнот, выполните file> save as> и измените выпадающий список для «Filetype» на «All Files (*.*)». Введите имя сценария, а затем расширение файла .ps1. Это сохранит его как файл powershell. Затем щелкните правой кнопкой мыши по этому файлу и выберите «Запустить с помощью Powershell».

...