powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / удаление файла через Shell
34 сообщений из 34, показаны все 2 страниц
удаление файла через Shell
    #36338934
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Не могу удалить файл через Shell, поскольку файла del.exe в папке C:\WINDOWS\system32\ просто нет.
Причём через cmd команда del работает...
Вот что я пишу:
Код: plaintext
1.
2.
3.
4.
5.
If comm_txt = "copy" Then
rc = Shell("c:\Windows\System32\xcopy.exe " & from_file & " " & target_fld & " /d",  1 )
Else
rc = Shell("c:\Windows\System32\del.exe " & target_fld & " " & del_file,  1 )
End If
xcopy работает нормально (он есть в папке system32)
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36338957
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем?

Код: plaintext
Kill del_file
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36338963
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cmd /c "del c:\1.txt"
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339132
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneа зачем?

Код: plaintext
Kill del_file


ок.
Но тогда, насколько я понимаю, мне надо проверить на существование файла del_file, если я пишу
Код: plaintext
Kill target_fld & " " & del_file

Как это сделать?
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339141
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if Dir(del_file)<>"" then Kill del_file
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339174
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: plaintext
if Dir(del_file)<>"" then Kill del_file

Не прокатило.

Желателен всё равно файлик del.exe Просто целевой (для удаления) файл находится на сетевых ресурсах.
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339184
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что? вы права выдайте сначала нужные
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339195
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_MaverickKonst_One
Код: plaintext
if Dir(del_file)<>"" then Kill del_file

Не прокатило.

Что именно не прокатило-то? Ошибка в чем?

_Maverick
Желателен всё равно файлик del.exe Просто целевой (для удаления) файл находится на сетевых ресурсах.

И что из этого?
И нафига вообще проверять существование файла если можно просто обработать ошибку удаления.
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339320
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, вопрос весь в правах..
Я тут новичок, и не в курсе, как удалить файл под паролем....
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339329
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под каким паролём? вы можете объяснить конкретно что и где вы пытаетесь удалять?
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339363
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит сервер.
Чтобы зайти в его корневой каталог, нужно ввести логин и пароль пользователя.
Соответственно если я пишу dir("\\192.188.132.56\ora-xx\123.txt")
мне выдаётся ошибка bad filename....
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339367
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сначала подключите этот сетевой ресурс локально, а уже потом с ним работайте.
смотрте справку по: net use
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339373
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это уже сделано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
'Подцепляем сетевой ресурс и входим с логином
rn_start = Shell("c:\Windows\System32\net use.exe " & str_folder & "/User:ora-" & code _
& "\[login] [pass]",  1 )

'Проверяем, удаляем файл или копируем???
comm_txt = Names("command").RefersToRange

'Выполняем процедуру копирования/удаления
    If comm_txt = "copy" Then
        'копируем
        rc = Shell("c:\Windows\System32\xcopy.exe " & from_file & " " & target_fld & " /d",  1 )
    Else
        'удаляем
        rc = Shell("c:\Windows\System32\del.exe " & target_fld & del_file,  1 )
    End If

'Отрубаем сетевой ресурс
rn_end = Shell("c:\Windows\System32\net use.exe " & str_folder & " /delete",  1 )
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339376
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
процесс удаления не работает...
Kill тоже не прокатывает...
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339388
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и под каким именем диска вы подрубаете сетевую директорию?

Код: plaintext
1.
2.
3.
4.
rn_start = Shell("c:\Windows\System32\net use.exe " & str_folder & "/User:ora-" & code _
& "\[login] [pass]",  1 )


MsgBox VBA.FileSystem.CurDir$
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339394
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без буквы, просто подрубаюсь, чтобы была возможность удалить или записать...
Обязательно с буквой разве?
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339395
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The syntax of this command is:

NET USE
[ devicename | *] [\\computername\sharename[\volume] [ password | *]]
[/USER:[domainname\]username]
[/USER:[dotted domain name\]username]
[/USER:[username@dotted domain name]
[/SMARTCARD]
[/SAVECRED]
[[/DELETE] | [/PERSISTENT:{YES | NO}]]
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339399
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"c:\Windows\System32\net use.exe " & str_folder & "/User:ora-" & code & "\[login] [pass]"

у вас вообще нечто непонятное
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339402
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. Согласен с Вами.
Но если ошибка из-за того, что нет буквы, почему файл записывается на диск, а при удалении выдаёт ошибку?
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339408
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разберитесь с правами на эту сетевую директорию.
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339409
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
str_folder = \\[server]\[Shared_folder]
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339411
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneразберитесь с правами на эту сетевую директорию.
Дело не в правах....
так как при команде из cmd
del .... и т.д.
всё отрабатывает чётко.
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339418
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напишите сначала bat-файл , который бы выполнял нужные вам действия без всяких переменных. проверьте , чтобы он работал. а уже потом переносите отлаженный вариант в код программы уже с нужной вам логикой.
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339428
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneнапишите сначала bat-файл , который бы выполнял нужные вам действия без всяких переменных. проверьте , чтобы он работал. а уже потом переносите отлаженный вариант в код программы уже с нужной вам логикой.

Так в том-то и дело, что это всё уже сделано....
Батник написан и работает.
Проблема в том, что команда DEL работает из батника, а из VBA через Shell - нет...
Вот пытаюсь разобраться в чём дело!
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339433
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может вы ,наконец, приведёте содержимое вашего батника и полный исходник вашего кода со всеми предопределёнными переменными? а то в коде у вас сплошные ошибки, которые вы отказываетесь исправлять а только твердите, что у вас в батнике всё работает
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339471
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
net use \\server\shared_folder /User:domain\[login] [pass]
xcopy W:\Productivity\ddto.DT0 \\server\shared_folder\USERS\SHARED\
net use \\server\shared_folder /d

Это текст батника...

Да уже всё понятно где ошибка....
Вместо того чтобы наезжать - помогли бы....
Ошибка была здесь:
было-не работало
Код: plaintext
rc = Shell("c:\Windows\System32\del.exe " & target_fld & " " & del_file,  1 )
стало
Код: plaintext
rc = Shell("c:\Windows\System32\cmd.exe /c del " & target_fld & " " & del_file,  1 )
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339477
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в вашем батнике нет ни строчки по удалению файла. а в коде, что вы привели ниже совсем непонятно какие же пути вы используете (о значения переменных мы должны догадаться?)
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339514
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
net use \\server\shared_folder /User:domain\[login] [pass]
del \\server\shared_folder\USERS\SHARED\ddto.DT0
net use \\server\shared_folder /d
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339521
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если такой батник работает, то вам осталось только аккуратно перенести его в код, не запутавшись в определении своих переменных
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339553
_Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уже написал, как решил проблему...
Проблема была совсем не в том, что я некорректно перенес!
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36339565
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
rc = Shell("c:\Windows\System32\cmd.exe /c del " & target_fld & " " & del_file,  1 )


это не будет работать! вы так ничего и не сделали.

вот так правильно:
Код: plaintext
rc = Shell("cmd /c del /Q d:\temp\1.txt")

разницу видите?
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36341771
Igor Mitichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

А я вот так удаляю...

Код: plaintext
1.
2.
3.
If FSO.FileExists(testfile) Then
  If FSO.GetFile(testfile).Attributes <>  0  Then FSO.GetFile(testfile).Attributes =  0 
  FSO.DeleteFile (testfile)
end if

Кстати, FSO нормально работает с сетевыми путями:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
C:\temp\>type test.vbs
Set objFSO = CreateObject("Scripting.FileSystemObject")
testfile="\\SERVER\update\ntp.cmd"
wscript.echo (objFSO.GetFile(testfile).Attributes)

C:\temp\>cscript test.vbs
 32 

C:\temp\>attrib \\SERVER\update\ntp.cmd
A          \\SERVER\update\ntp.cmd
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36341787
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а мне то зачем это? вы это автору пишите =)
...
Рейтинг: 0 / 0
удаление файла через Shell
    #36342537
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor MitichevКстати, FSO нормально работает с сетевыми путями:

А кто с ними не нормально работает?

Kill - работает нормально
API-шная DeleteFile - тоже нормально.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / удаление файла через Shell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]