Переименование файлов Powershell, невозможно переименовать файл не существует

Вот функция, которая рассчитает, сколько пикселей вам нужно добавить - используя данный штрих - вверху, справа, внизу и влево, все на основе браузера:

var getStrokeOffsets = function(stroke){

        var strokeFloor =       Math.floor(stroke / 2),                                                                 // max offset
            strokeCeil =        Math.ceil(stroke / 2);                                                                  // min offset

        if($.browser.mozilla){                                                                                          // Mozilla offsets

            return {
                bottom:     strokeFloor,
                left:       strokeFloor,
                top:        strokeCeil,
                right:      strokeCeil
            };

        }else if($.browser.webkit){                                                                                     // WebKit offsets

            return {
                bottom:     strokeCeil,
                left:       strokeFloor,
                top:        strokeFloor,
                right:      strokeCeil
            };

        }else{                                                                                                          // default offsets

            return {
                bottom:     strokeCeil,
                left:       strokeCeil,
                top:        strokeCeil,
                right:      strokeCeil
            };

        }

    };
0
задан Wiktor Stribiżew 5 March 2019 в 18:19
поделиться

2 ответа

Я хотел бы сделать что-то вроде этого:

$Path = '<PATH TO THE ROOTFOLDER WHERE THE FILES TO RENAME ARE FOUND>'

Get-ChildItem -Path $Path -Filter '*-*' -File -Recurse | ForEach-Object {
    # obtain the new file basename
    $newBaseName = (

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

.BaseName -split '-')[0].Trim() $extension =

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

.Extension # this includes the dot $folder =

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

.DirectoryName # get an array of all filenames (name only) of the files with a similar name already present in the folder $allFiles = @(Get-ChildItem $folder -Filter "$newBaseName*$extension" -File | Select-Object -ExpandProperty Name) # for PowerShell version < 3.0 use this # $allFiles = @(Get-ChildItem $folder-Filter "$newBaseName*$extension" | Where-Object { !(

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

.PSIsContainer) } | Select-Object -ExpandProperty Name) # construct the new filename $newFileName = $newBaseName + $extension if ($allFiles.Count) { $count = 1 while ($allFiles -contains $newFileName) { $newFileName = "{0}({1}){2}" -f $newBaseName, $count++, $extension } } Write-Host "Renaming '$(

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

.FullName)' to '$newFileName'"

Я хотел бы сделать что-то вроде этого:

[110]

Надеюсь, что помогает

| Rename-Item -NewName $newFileName -Force }

Надеюсь, что помогает

0
ответ дан Theo 5 March 2019 в 18:19
поделиться

Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.

1 - 13234.txt
1.txt

Сценарий сначала пытается изменить «1 - 13234.txt» на «1. txt». Лучше сначала проверить наличие файла.

Get-ChildItem -File -Recurse |
where BaseName -match "(.*)-" |
Group-Object { 

Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.

[110]

Сценарий сначала пытается изменить «1 - 13234.txt» на «1. txt». Лучше сначала проверить наличие файла.

[111].DirectoryName + "\" + $Matches[1].TrimEnd() +

Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.

[110]

Сценарий сначала пытается изменить «1 - 13234.txt» на «1. txt». Лучше сначала проверить наличие файла.

[111].Extension } | foreach { $fi = [IO.FileInfo]::new(

Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.

[110]

Сценарий сначала пытается изменить «1 - 13234.txt» на «1. txt». Лучше сначала проверить наличие файла.

[111].Name) $i = 0

Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.

[110]

Сценарий сначала пытается изменить «1 - 13234.txt» на «1. txt». Лучше сначала проверить наличие файла.

[111].Group | Rename-Item -NewName { do { $newName = $fi.DirectoryName + "\" + $fi.BaseName + $(if($i){"($i)"}) + $fi.Extension $script:i++ } while (Test-Path $newName) $newName } -PassThru }
0
ответ дан rokumaru 5 March 2019 в 18:19
поделиться
Другие вопросы по тегам:

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