• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

kill не стирает файлы со скобками в имени.

seoman2

Green Team
17.02.2010
502
1
BIT
36
Почему-то Kill oname$ не стирает файлы, у которых oname$ содарди символ ")" или "(".

Чтобы обойти проблему, думал сделать батник, но
fileNum% = Freefile()
Open "" For Append As fileNum%
Print # fileNum%, "del " & oname$

вместо русских имен в батник пишет краказяблы (((
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
Open statement (LotusScript Language)

Charset = MIMECharsetName ?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
вместо русских имен
патамучта вместо нормальной кодировки (юникод) винда использует что попало, и программам отдает что попало
нек программы "ждут" виндовз1251
причин масса...
батники, в винде, используют локаль cp866 ;)
короче, виндовз - это сплошная помойка из легаси кода...
 
  • Нравится
Реакции: Vertigo

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
Имя файла в кавычки брать не пробовали?
Код:
kill {"} + filename + {"}
 

seoman2

Green Team
17.02.2010
502
1
BIT
36
Нет, проблема не в синтаксисе kill.

В батнике у меня cp866 русский текст краказяблами, а надо в Windows-1251.
в Open ... Charset = "Windows-1251" не помогает.
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
Я не про батник, а про имя файла в Windows, например некоторые "недопустимые" символы легко вписываются в имя файла, если имя файла взять в кавычки.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Нет, проблема не в синтаксисе kill.

В батнике у меня cp866 русский текст краказяблами, а надо в Windows-1251.
в Open ... Charset = "Windows-1251" не помогает.
"пользователь виндовз должен страдать"
почему вы не хотите идентифицировать происхождение "проблемы", яж сказал - "проблема" в винде, там она и решается
надо просто привыкнуть к мысли - винда - это не просто :), как упомянул - там куча легаси, на поддержку которого свои костыли и подпорки
 
  • Нравится
Реакции: Vertigo

seoman2

Green Team
17.02.2010
502
1
BIT
36
Юзер нажимает кнопку, в которой прописано удаление файла в винде. Что делать?
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
И к стати, если это агент, вы ему выдали соответствующие права?
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
55
Только что попробовал. seoman2 прав - при удалении файла, содержащего в имени скобки возвращается Error="Path/file access error" (Err=75). У агента максимальные права.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
Только что попробовал. seoman2 прав - при удалении файла, содержащего в имени скобки возвращается Error="Path/file access error" (Err=75). У агента максимальные права.
я потому и спрашивал про источник появления файла ;), если из нотусятины - никто не мешает давать уникальное название, но исключающее символы вне латинских букв и цифр (подчеркивание и точку - можно ;) )
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
36
Юзер нажимает кнопку, в которой прописано удаление файла в винде. Что делать?
чуть изменить скрипт - перед удалением, сначала переименовать файл в нормальное имя, а затем удалить
файл со скобками переименовывается без проблем
 

seoman2

Green Team
17.02.2010
502
1
BIT
36
У меня в лотусовой карточке в ричтекст поле rtitem хранятся вложения юзеров.
Ну и чтобы обработать эти файлы, я делаю
Код:
Forall obj In rtitem.EmbeddedObjects
....
Call obj.ExtractFile( datapatch$ & obj.Source ) 
....
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
55
Фантастика какая-то... Или, что скорее всего, я тупанул - теперь файл со скобками Kill'ом удаляется без проблем.
Ошибка Error="Path/file access error" (Err=75) возникает при отсутствии файла на диске, т.е. при повторном вызове Kill для этого файла :)
 

seoman2

Green Team
17.02.2010
502
1
BIT
36
VladSh - можно Ваш пример?

Файл на диске точно есть.

Код:
Forall obj In rtitem.EmbeddedObjects

....

Call obj.ExtractFile( datapatch$ & obj.Source )

....

Kill    datapatch$ & obj.Source
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
55
Открыл старый проект, и там в функции-обёртке для kill перед удалением вызывается isFileExist, т.е. уже когда-то это обходил:
Код:
Function isFileExist(sFileName As String) As Boolean
    isFileExist = (Len(Dir(sFileName, 6)) <> 0)
End Function
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
55
seoman2
Создал файл на диске со скобками, дальше ему просто Kill "путь_к_файлу".

1. Возможно клиент держит вложение, и поэтому его невозможно удалить:
- если используете поток, то закройте его перед удалением файла.
- если вложили в какой-то другой док, то сохраните его перед удалением файла с диска.
- некоторые версии клиента могут работать некорректно. У нас один и тот же код регистрации отрабатывает по разному. Код сохраняет локально id-файл пользователя, а потом пытается его удалить. Так вот 8-й клиент его без проблем удаляет, а 9-й валится с такой же ошибкой 75.

2. Проверьте права пользователя на удаление из папки. У нас когда-то такое было при переходе на Win7 - файлы успешно выкладывались по стандартному пути в профиле, но удалиться в этом же скрипте не могли. Из-за отсутствия времени не стали разбираться с доступами в ФС, поэтому сделали в корне диска C папку для работы с вложениями из Lotus, - помогло.

3. Проверьте полный путь файла. У Винды ограничение - вроде как 255 символом в латинской раскладке. Файл может сохраниться по этому большому путь, но удалить Kill'ом будет невозможно. В этом случае придётся либо пользоваться спец. утилитами (слышал, что такие есть), но мы просто запускали проверку диска, там производится проверка и исправление ошибок файловой системы.
По нормальному надо писать функцию-обёртку для выкладывания файла на диск, в которой проверять, есть ли уже файл и удалять его, затем проверять длину пути файла...
 

seoman2

Green Team
17.02.2010
502
1
BIT
36
протесть свой скрипт с аттачем с именем "От(чё-т", т.к. с "От(чё)-т" всё будет ок.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!