|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление символов в файлах |
|
CMD/BAT - Удаление символов в файлах
|
Новый участник Сообщения: 2 |
Добрый день.
Необходимо удалить 33 символа в папке в файлах, которые не старее 1 дня. Подскажите, пожалуйста, батник |
|
Отправлено: 11:41, 26-04-2021 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать *скептически* просто 33 рандомных символа?
нужны подробности о файле (а лучше пример файла), о расположении в нем удаляемых символов, о расположении файлов относительно папок в которых они находятся и аргументация о невозможности использования powershell. |
Отправлено: 13:25, 26-04-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать baddaboo, в содержимом файлов или в имени? Если в содержимом, то какая кодировка файла? Лучше предоставьте живой пример - прикрепите один файл к сообщению, заархивируйте, если большой.
|
------- Отправлено: 13:55, 26-04-2021 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Elven:
как выше, 33 символа, мы рискуем получить одинаковые имена и тут или невозможность выполнения операции или затирание файла. |
|
Отправлено: 15:46, 26-04-2021 | #4 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Извиняюсь, упустил этот момент в вопросе. В названии файла.
Структура названия: Имябазы33символа.bak Нужно, чтобы осталось Имябазы.bak Градация по времени делается для того, что в этой папке есть другие старые бекапы и чтобы их имя не затерлось. Новые бекапы будут забираться каждый день и удаляться, поэтому задваивание исключено. |
|
Отправлено: 16:09, 26-04-2021 | #5 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать Цитата baddaboo:
Имябазы33символа.bak Что такое Имябазы, сколько там символов? Нельзя ли переместить файл после переименования в другую папку, чтобы при повторном запуске батника на отрезать 33 символа от уже урезанного имени? |
|
------- Отправлено: 16:31, 26-04-2021 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать С датой работать в cmd чистый гемор, и, т.к. аргументов против поша я не увидел - вот:
Get-ChildItem ./*.bak | where {$_.LastWriteTime -gt (Get-Date).AddDays(-1)} | foreach { $NewName = ($_.BaseName -replace ".{33}$") + $_.Extension if (!(Test-Path $NewName -PathType Leaf)) { Rename-Item $_ $NewName } else { Write-Host "Ты же говорил что имена повторяться не будут! А это что такое?" Write-Host $NewName Write-Host "Вот сам теперь переименовывай :/" } } |
Отправлено: 14:15, 27-04-2021 | #7 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать Цитата baddaboo:
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_In\-33" Set Mask="*.*" If Not Exist "%BoxOut%" Md "%BoxOut% Pushd "%BoxIn%" && (FOR /F "usebackq delims=" %%f IN (`2^>nul Dir %Mask% /B /A:-D`) DO ( Set "Name=%%~nf" FOR /F "delims= " %%t IN ("%%~tf") DO ( If %Date%==%%t >nul Call Move "%%f" "%BoxOut%\%%Name:~0,-33%%%%~xf" )) Popd) pause Exit /B |
|
------- Отправлено: 16:17, 27-04-2021 | #8 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать Цитата baddaboo:
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_In\-33" Set /A dayFile=-2 Set Mask="*.*" If Not Exist "%BoxOut%" Md "%BoxOut%" Pushd "%BoxIn%" && (FOR /F "usebackq delims=" %%f IN (`2^>nul Dir %Mask% /B /O:-D /T:W /A:-D`) DO ( 2>nul >nul FORFILES /P "Z:\Box_In" /M "%%f" /D %dayFile% &&GoTo :End Set "Name=%%~nf" Call Move "%%f" "%BoxOut%\%%Name:~0,-33%%%%~xf" ) Popd) :End pause Exit /B |
|
------- Отправлено: 16:08, 28-04-2021 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Удаление всех пробельных символов в текстовых файлах. | serg515 | Скриптовые языки администрирования Windows | 24 | 24-10-2020 16:02 | |
CMD/BAT - Удалить строку с ключевым набором символов во всех файлах в папке и всех подпапках. | BerryMOR | Скриптовые языки администрирования Windows | 6 | 20-06-2019 18:26 | |
CMD/BAT - [решено] Удаление символов переменной | NuclearBox | Скриптовые языки администрирования Windows | 4 | 20-05-2019 10:25 | |
PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах | nkaretnikov | Скриптовые языки администрирования Windows | 13 | 05-03-2017 17:39 | |
Любой язык - удаление всех символов кроме шаблона | gendalf | Скриптовые языки администрирования Windows | 3 | 19-07-2012 16:21 |
|