Вот функция, которая рассчитает, сколько пикселей вам нужно добавить - используя данный штрих - вверху, справа, внизу и влево, все на основе браузера:
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
};
}
};
Я хотел бы сделать что-то вроде этого:
$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
}
Надеюсь, что помогает
Если следующие файлы находятся в одном каталоге, сценарий, вероятно, не будет работать.
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
}