![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Заменить символы в названия папок |
|
|
CMD/BAT - Заменить символы в названия папок
|
Новый участник Сообщения: 4 |
Всем привет!
Уважаемые программисты, можете помочь с написанием bat или CMD, суть вопроса, в названиях файла присутствуют символы C С или B В и т.д., они разные одна английская другая русская, а хотелось бы их заменить все на английские, а папок море в ручника это не выполнимо...) |
|
Отправлено: 12:30, 15-08-2023 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Цитата Adamm:
|
|
------- Отправлено: 13:31, 15-08-2023 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Е_E Т_T О_O Р_P А_A Н_H К_K Х_X С_C В_B М_M е_e т_t о_o р_p а_a н_h к_k х_x с_c в_b м_m
сущесвующая_заменяемая |
Отправлено: 13:42, 15-08-2023 | #3 |
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать powershell поможет?
|
------- Отправлено: 13:49, 15-08-2023 | #4 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Как-то так (Powershell):
$hash = New-Object system.collections.hashtable
$hash.Е = "E"
$hash.Т = "T"
$hash.О = "O"
$hash.Р = "P"
$hash.А = "A"
$hash.Н = "H"
$hash.К = "K"
$hash.Х = "X"
$hash.С = "C"
$hash.В = "B"
$hash.М = "M"
$hash.е = "e"
$hash.т = "t"
$hash.о = "o"
$hash.р = "p"
$hash.а = "a"
$hash.н = "h"
$hash.к = "k"
$hash.х = "x"
$hash.с = "c"
$hash.в = "b"
$hash.м = "m"
$folders = dir 'D:\temp\log' -Recurse |? psiscontainer
foreach ($folder in $folders) {
$newName = ($folder.name.ToCharArray() |% {
if ($hash["$_"]) {$hash["$_"]}
else {$_}
}) -join ''
Rename-Item $folder.FullName $newname -ErrorAction SilentlyContinue -WhatIf
}
|
|
------- Отправлено: 14:22, 15-08-2023 | #5 |
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать function trans { param( [parameter(mandatory=$true,valuefrompipeline=$true)] [allowemptystring()] [allownull()] [string]$fstring ) begin { $charr = @{ [char]'А' = 'A' [char]'а' = 'a' [char]'В' = 'B' [char]'в' = 'b' [char]'Е' = 'E' [char]'е' = 'e' [char]'К' = 'K' [char]'к' = 'k' [char]'М' = 'M' [char]'м' = 'm' [char]'Н' = 'H' [char]'н' = 'h' [char]'О' = 'O' [char]'о' = 'o' [char]'Р' = 'P' [char]'р' = 'p' [char]'С' = 'C' [char]'с' = 'c' [char]'Т' = 'T' [char]'т' = 't' [char]'Х' = 'X' [char]'х' = 'x' } } process{ $arr = new-object system.text.stringbuilder foreach ($item in $fstring.tochararray()){ if ($charr[$item] -cne $null){ $null = $arr.append($charr[$item]) } else { $null = $arr.append($item) } } } end {$arr.tostring().trim("`n")} } #Здесь надо указать абсолютный путь к каталогу: $folder = '.\TEST' dir $folder -rec -file|%{ ren $_.fullname $($_.name|trans) } Цитата DJ Mogarych:
Цитата Adamm:
|
||
------- Отправлено: 14:29, 15-08-2023 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать DJ Mogarych, все работает но в консоли красным отвечает:
Rename-Item : Исходный и результирующий путь должны различаться. строка:31 знак:5 + Rename-Item $folder.FullName $newname + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (C:\Users\Rychko...fdsfds\11-104-J:String) [Rename-Item], IOException + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand Rename-Item : Не удается выполнить переименование, так как элемент в "C:\Users\RychkovEA\Desktop\dsfdsfds\11-101-E\4124 -CD-VD-DT" не существует. строка:31 знак:5 + Rename-Item $folder.FullName $newname |
Отправлено: 14:35, 15-08-2023 | #7 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Цитата Adamm:
Скопируйте скрипт ещё раз, там добавилось YuS_2, а как у вас в хэш-таблице сосуществуют ? По умолчанию вроде бы так не работает, надо явно указывать тип. |
|
------- Последний раз редактировалось DJ Mogarych, 15-08-2023 в 14:58. Отправлено: 14:53, 15-08-2023 | #8 |
Crazy Сообщения: 1234
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
во втором случае, это [string] |
|
------- Отправлено: 15:07, 15-08-2023 | #9 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо огромное! Все работает!
|
Отправлено: 15:15, 15-08-2023 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Вывести названия непустых папок | maxim43g | Скриптовые языки администрирования Windows | 5 | 19-10-2022 16:09 | |
CMD/BAT - [решено] Названия папок ПРОПИСНЫМИ буквами | Sisin | Скриптовые языки администрирования Windows | 13 | 16-07-2022 01:18 | |
2008 R2 - Названия папок в профиле пользователя после перемещения | Lipser2008 | Windows Server 2008/2008 R2 | 16 | 17-04-2017 16:45 | |
Интерфейс - [решено] Изменились названия папок в C:\Users | ziken | Microsoft Windows 7 | 1 | 12-12-2013 16:24 | |
CMD/BAT - Как заменить символы в текстовом файле | yaoleg2 | Скриптовые языки администрирования Windows | 0 | 29-03-2013 15:48 |
|