|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удалить первый байт в файле |
|
|
Любой язык - [решено] Удалить первый байт в файле
|
Старожил Сообщения: 148 |
Профиль | Сайт | Отправить PM | Цитировать Приветствую!
Задача следующая: нужно удалить первый байт в файле. Этот процесс нужно автоматизировать, поскольку этот байт мне нужно удалить более чем в сотне файлов. Так что если на выходе получится скрипт, который опрашивает директорию с субдиректориями, и все находящиеся в них файлы смещает на один байт вверх, уничтожая этот байт, было бы идеально. Если имена конечных файлов слегка изменятся (например, к имени прибавится цифра 1), это не принципиально. |
|
Отправлено: 21:26, 30-04-2021 |
Ветеран Сообщения: 1754
|
|
Последний раз редактировалось Foreigner, 30-04-2021 в 22:07. Отправлено: 21:43, 30-04-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Foreigner, я совсем не рублю в PowerShell. Попробовал создать скрипт *.ps1, куда записал эти строки. Поместил скрипт в папку с файлами и запустил. Скрипт выдал ошибку и закрылся.
Что я сделал не так? |
Последний раз редактировалось m0nkrus, 01-05-2021 в 09:14. Отправлено: 22:38, 30-04-2021 | #3 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Цитата m0nkrus:
Вставьте в начало скрипта и скрипт в папку не помещайте, он же у себя тоже будет пытаться байт откусить. |
|
------- Отправлено: 22:45, 30-04-2021 | #4 |
Ветеран Сообщения: 1754
|
Цитата m0nkrus:
Цитата m0nkrus:
foreach ($file in (Get-Childitem -File -Recurse)) { (Get-Content $file -Encoding byte -Raw)[1..($file.length-1)] | Set-Content $file -Encoding byte } У меня не было возможности проверить этот. |
|||
Отправлено: 00:01, 01-05-2021 | #5 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
------- Отправлено: 01:00, 01-05-2021 | #6 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Наверное надо было уточнить... Пробую все это делать на семерке. Если нужно обязательно на десятке, то скажите, переключусь на нее.
Все скрипты вываливаются с ошибкой. С какой, сказать не могу, так как консольное окно сразу закрывается. Только и успеваю увидеть красный цвет надписи. С файлами в папке ничего не происходит. Еще раз прошу прощения за свою дурость, но с PowerShell я ранее дел не имел. |
Отправлено: 06:17, 01-05-2021 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Коллеги, судя по:
Цитата m0nkrus:
|
|
Отправлено: 07:33, 01-05-2021 | #8 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Iska, насколько я помню, в свое время я давал разрешение командой Set-ExecutionPolicy Unrestricted. Сейчас на всякий случай повторил. Результат не изменился...
|
Отправлено: 08:29, 01-05-2021 | #9 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Перешел на десятку. Скрипт ниже сработал, но не до конца. Не смог обработать файлы во вложенных папках. Выдал ошибку. В корневой для скрипта директории все обработал.
cd d:\test foreach ($file in (Get-Childitem -File -Recurse)) { (Get-Content $file -Encoding byte -Raw)[1..($file.length-1)] | Set-Content $file -Encoding byte } А вот скрипт, что представлен ниже, выдал тот результат, что мне нужно! $root = 'd:\test' dir $root -file -rec|%{ $bytes = [io.file]::readallbytes($_.fullname) [io.file]::writeallbytes($_.fullname, $bytes[1..($bytes.count-1)]) } Тему считаю исчерпанной. |
Отправлено: 08:44, 01-05-2021 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удалить все метаданные в файле | shadowbat | Скриптовые языки администрирования Windows | 0 | 03-03-2020 15:49 | |
CMD/BAT - [решено] Удалить первый символ из строки | Darkar25 | Скриптовые языки администрирования Windows | 4 | 06-04-2019 11:59 | |
CMD/BAT - [решено] удалить файл от 0 до 100 байт | Freddy1984 | Скриптовые языки администрирования Windows | 15 | 14-06-2017 16:05 | |
Любой язык - [решено] Удалить последний байт в файле | pzh2393 | Скриптовые языки администрирования Windows | 10 | 06-12-2014 19:28 | |
[решено] Изменить байт в файле по смещению. | semiono | AutoIt | 2 | 29-08-2010 22:57 |
|