Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Исчезновение папок на флешке

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

В интернете пишут,что файл с вирусом находится по адресу:
c:\Users\zhenya\AppData\Roaming\
но в этой папке никаких исполняющих файлов у меня нет.
в msconfig есть ссылка на автозапуск из c:\Users\zhenya\AppData\Roaming\igbebm.exe - но этого файла в папке я не вижу
ставлю галочку на отключение,перезахожу в msconfig,а она там снова запущена,перезагрузка так же не помогает.

Пока больше не знаю что делать
Ответ: Внимание! Рекомендации написаны специально для vreda. Если рекомендации написаны не для вас, не используйте их - это может повредить вашей системе.
Если у вас похожая проблема - создайте тему в разделе и выполните .
______________________________________________________

Закройте все программы, .
  1. (Файл - Выполнить скрипт):

    Windows Batch file
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    begin
    ExecuteFile('net.exe', 'stop tcpip /y', 0, 15000, true);
    SearchRootkit(true, true);
    SetAVZGuardStatus(True);
     QuarantineFile('C:\Users\zhenya\AppData\Roaming\Igbebm.exe', '');
     DeleteFile('C:\Users\zhenya\AppData\Roaming\Igbebm.exe', '32');
     RegKeyParamDel('HKEY_CURRENT_USER','Software\Microsoft\Windows\CurrentVersion\Run','Igbebm');
     RegKeyParamDel('HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\Igbebm','command');
    BC_ImportALL;
    ExecuteSysClean;
    BC_Activate;
     ExecuteWizard('SCU', 2, 3, true);
    RebootWindows(true);
    end.
    Компьютер перезагрузится.
  2. После перезагрузки, выполните такой скрипт:

    Windows Batch file
    1
    2
    3
    
    begin
    CreateQurantineArchive(GetAVZDirectory+'quarantine.zip'); 
    end.
  3. Файл quarantine.zip из папки с распакованной утилитой AVZ отправьте с помощью формы, расположенной вверху темы или (если размер архива превышает 16 MB) на этот почтовый ящик: quarantine <at> safezone.cc (замените <at> на @) с указанием ссылки на тему в теме (заголовке) сообщения и с указанием пароля: virus в теле письма.
    Карантин прикреплять к сообщениям на данном форуме ЗАПРЕЩЕНО!!!


  4. .

  5. .
Вопрос: Кодировка имени файлов и папок

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

Windows XP/Vista/7 - в них я создаю файл/папку и первым-же делом машина мне присваивает на файл/папку имя ("Новая папка" или "Текстовый документ.txt") дальше уже меняешь имя как хочешь, т.е. ни файл ни папка вообще без имени существовать не могут.

Вопрос такой: в какой кодировке он мне прописал это русское имя созданной папки/файла? Например винда русская делает это в ASCII но если я создам папку/файл в Linux Ubuntu 14.04 с русским именем, то он мне должен русские символы создать в UTF-8, но как это проверить??? ведь в убунте может для русских автоматически тот-же ASCII использовать??? И проблема в том, что когда я всё это скину на USB-флешку и воткну её в др. систему, например Mac OS X у меня будет что-то вроде: лдвтлдмвы если конечно-же в Маке нет ASCII <- будет ли такое на самом деле?

И вообще, как проверить кодировку русских символов ? Например я хотел в какой нить оси (пусть даже portable или урезанной) найти её кодировочные таблицы, удалить все кроме UTF-8 (русской/китайской/корейской) и на ней я сразу бы знал что пишу я имя файла русскими символами из кодовой таблице UTF-8, вставив флешку с папками/файлами сразу бы увидел кракозябры которые могут быть чем угодно но не UTF-8 и *знал бы это* - своего рода получился бы детектор кодировок не utf8.

В поисках места нахождения кодировочных таблиц у windows xp понял что их там тупо нет! она использует псевдо-кодировку вытаскивая всякие символы из всяких там шрифтов так чтоб в итоге соответствовало кодовым стандартным таблицам, но самих таблиц нет.

Может кто нибудь посоветовать операционную систему, которая использует кодовые таблицы, в которой я оставлю только таблицы utf8 - разных языков, в том числе и русских симвоов (система не запорится т.к. ось пишется на англ. символах и цифрах а их местоположение во всех кодировках одинаково (вроде))...

Или может ли помочь какой нить дистрибутив который не знает ASCII будет писать русские имена файлов в utf? но тут ещё вопрос, мне нужен именно utf-8, не 16 не 32 не KOI*** а именно utf8.

Хочу называть файлы и папки русскими в перемешку с корейскими/китайскими символами (это будет перемешка utf8-русский/utf8-8-корейский/utf8-китайский), нужен мировой стандарт и лучше чем кодировку utf-8 для этого не нашёл.
Ответ: Вобщем, проблему я пока что так и не решил... Может кто подскажет что я сделал не так?

Напомню - вопрос в том, что нужно определить кодировку в именах файлах и папок в маздае (Windows) интересует исключительно UTF-8 а не всякие cp-1251, cp-1252 (+расширенная), koi8-r и прочая маздаевская фигня т.к. написав имена файлов и папок в винде русскими символами в других системах будут каракули а UTF-8 считается как мировой эталон и определится нормально в любой среде (если у неё есть русская лаколизация)...

Я сделал следующее: Установил Ubuntu 14.04 на USB-HDD, загрузился с неё, просмотрел список установленных локалей командой: locale -a

удалил лишние локали кроме интересующих меня английской.utf8 и русской.utf8 командой: sudo locale-gen --purge en_US.utf8 ru_RU.utf8 && echo "Success!"

сново проверил удалилось ли ненужное: locale -a

он мне выдал: С.UTF8
en_US.UTF8
POSIX
ru_RU.UTF8
т.е. всё казалось бы нормально.... (и тут Остапа понесло)... Подключаю HDD с маздаем (или монтирую ntfs, неважно), открываю... а там - ВСЁ НОРМАЛЬНО!!! --- КАК??? Я удалил все русские локали кроме UTF8 RUS.

Винда имена файлов пишет в 1251 или кои8? Убунту не должна была прочитать правильно эти русские виндовские шрифты т.к. я 1251 и кои8 локали УДАЛИЛ!!! а убунта их видет правильно (мне нужны были кракозябры!) а так получается что Windosw XP SP3 имена файлов и папок пишет мне в UTF8 ???? Иначе как объяснить это явление?

Решил попробовать другой момент, в Тотал Коммандоре у меня стоит плагин (Транслятор) в котором я русские имена файлов и папок переделываю в UTF8 и он мне их тут-же переименовывает в каракули, но когда я гружу Ubuntu то она эти каракули так-же видет как и винда - не распознаёт, КАК??? на убунте же Ru-UTF8 локаль стоит!!! Что за бред? Выходит что мне Тоталовский транслятор переименовывает не в UTF8 (саму кодировку) а в бредятину как оно бы отображалось если бы у меня винда не понимала бы UTF8 ???

Вобщем вопрос: так и не понят, почему Убунту, имеющая только русский утф8 отлично распознаёт виндовский русский (или винда мне их уже в утф8 катает или в убунте что-то не удалено)

Для доказательства того, что локаль правильно отображается внутри файла я в тегах .ogg и .mp3 написал коменты на русском (в винде), убунта распознала русский тег в .ogg нормально т.к. по "паспорту" в .ogg теги заносятся с кодировкой UTF8 а вот .mp3 показала мне убунта каракули (как и должно быть, т.к. мп3-теги в утф16 кодировки а я её в убунте удалил) Но вот почему сами имена файлов и папок русские написаные в маздае продолжают распознаваться в Убунте - я не могу понять. Если есть у кого идеи - отпишитесь...
Вопрос: Перемещение всех файлов с подпапок в корневую директорию, перемещение обратно

Здравствуйте, немного предыстории: у человека потерялись файлы на флэшке, я занялся их восстановлением, на свою голову нашёл занятие на выходные (язык мой - враг мой), большинство было Word'всяких документов 3х форматов doc, docx и TMP, папок на этой флешке просто очень много, да к тому же и в каждой папке есть файлы и подпапки - я с 12 часов успел только 4 папки обработать с подпапками полностью. 1) Могу ли я Вас, уважаемые жители форума, попросить написать BAT файл, который все файлы в подпапках скопирует в один каталог, откуда программе по восстановлению будет удобнее сканировать файлы?
Программа тоже хитро устроена, каждый файл после восстановления она кидает в
Код Code
1
[Папка в которую будут скидываться восстановленные файлы]\[<название документа>.<расширение которое было у файла до восстановления>]\<название документа>.doc
(то есть имена, за исключением расширения сохраняются такими какими были) - но думаю 1й батник и с этим справится
!Но в некоторых папках всё-же могут попасться одинаковые файлы - особенно файлы TMP - они же временные, так что в каждой папке они почти одинаково называются и номеруются - например: xWRL1208.TMP
2) Нужен батник, который сравнивает две папки на наличие файлов <filename>.<*> и если в папке 1 есть такой файл, которого нет в папке 2, то такой файл переносится в папку 1/Не восстановленно.
---
Это относится к 1-му батнику - В подпапках папки 1 могут присутсвовать папки с названием "Открываютя" - нужно их игнорировать.
Ответ: Ваш подход с восстановлением в корне неверный.

Каждое обращение к флеш-накопителю уменьшает шансы на успешное восстановление.
Происходит размагничивание. Работать нужно с образом. Потратите час, ну может, 2 времени.

Цитата Сообщение от Drink
Создайте образ флешки в файл, например, в DMDE: запустить, нажать Отмена, потом Сервис - Копировать секторы - где Источник - выбрать Диск - выбрать флешку, где Место для записи - выбрать ФАЙЛ (!), сохранить в директории на жд. Будет образ (файл), с которым работайте. Сделайте его копию. Этот файл и открывайте в программах восстановления, которые это позволяют. Внимательнее с dmde, не перепутайте диски.

Потом попробуйте recuva free с этой флешкой, для начала.
Вопрос: Запуск программы по событию создания файла

Здравствуйте значит так есть программа которая ну совсем ни как не подключена к БД и подключению не подлежит.
С помощью этой программа бухгалтер создаёт файл 2 раза каждый день.
Опишу схему того как всё работает сейчас.
P.S.Внутри программы есть настройка в которой можно выбрать место сохранения файл и имя файла может это как-то поможет вам мне подсказать. =)
Действия:
1) Бухгалтер включает программу создаёт файл
2) Бухгалтер звонит программисту чтобы тот запустил процедуру которая находит этот файл и данные из этого фала заносит в БД отсылка к теме (Чтение данных из внешнего файла)
3) После отработки процедуры программист звонит бухгалтеру и говорит что данные залиты.
4) Бухгалтер снова включает программу создаёт тот же файл, но уже с другими данными
(так как разные счета банков) (объединить эти счета в один файл нельзя так как программа при формирование файла заменяет тот файл который был (сделать один файл с двумя счетами сразу тоже нельзя так как в программе такого не предусмотрено, сменить путь сохранения можно НО! бухгалтера этому не обучить так что вариант отпадает да и к тому же каждый день менять по два раза путь сохранения бред)
5) После того как 2 раз файл создался старый фал затёрся.
6) Бухгалтер звонит программисту чтобы тот запустил процедуру
7) После отработки процедуры программист звонит бухгалтеру и говорит что данные залиты
8) Конец.

Добавлено через 6 минут
Так вот я по напридумывал какой-то совсем невероятный вариант...
В общем как сделать так чтобы при создание файл это пункт "1)" в описание задачи система понимала что файл создался и сама запускала эту процедуру.
Вариант того как я хочу:
1) Бухгалтер включает программу создаёт файл.
2) Система поняла "Ага создали файл">>>Запуск процедуры она работает ну секунд 5 (за это время бухгалтер не успеет создать другой файл)
3) Бухгалтер включает программу создаёт файл.
4) Система поняла "Ага создали файл">>>Запуск процедуры
5) Конец.
Чтобы исключить эти звонки =)) надоело уже.

P.S Windows XP; База Oracle (последняя версия.) да да XP не смейтесь. Х_ы
Ответ: Мне кажется, мало отследить создание файла. Надо отследить закрытие файла. А то при отслеживании возможно попасть в ситуацию, что файл уже создан, но запись в него ещё не закончена.
Вопрос: Архивирование определенных файлов из разных каталогов с сохранением структуры

Здравствуйте.
Суть задачи. Есть определенный каталог (C:\X), в котором в разных подкаталогах лежат различные файлы и папки (количество, точное расположение файлов в каталоге C:\X и из расширения известны), которые необходимо заархивировать и сбросить полученный архив в определенную папку(C:\backup\Y). Среди этих файлов есть два, у которых периодически меняется содержимое и, что самое главное меняется их имя, и необходимо, разумеется, добавлять в архив только самую последнюю версию этих файлов (это файлы с расширением *.snb и *.jh)

С помощью изучения разных тем на Вашем форуме я дошел до следующего кода батника:
Кликните здесь для просмотра всего текста
Код Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@Echo off
SetLocal EnableDelayedExpansion
 
cd c:\backup
 
::Переменные
set DD=%DATE:~0,2%
set MM=%DATE:~3,2%
set YY=%DATE:~-4%
set TT=%Time:~0,2%-%Time:~3,2%
Set $ARCHIVENAME=backup%DD%.%MM%.%YY%_%TT%.7z
Set $SRC=add.txt
Set $EXC=excl.txt
Set $DST=c:\backup\Y
Set $COMPR=1
Set $COPIES=5
Set $PSW=123123
Set SNBFOLD=C:\X\A\snbs
Set JHFOLD=C:\X\B\jhs
Set ARCTEMP=C:\backup\Y\temp
 
::копирование последнего *.jh во временную папку
pushd %JHFOLD%
dir /b /O:-D /T:W /A:-D *.jh > 1.txt
set /p jhllast=<1.txt
del 1.txt
echo filename %jhlast%
copy "%jhlast%" %ARCTEMP%
popd
 
::копирование последнего *.snb во временную папку
pushd %SNBFOLD%
dir /b /O:-D /T:W /A:-D *.snb > 1.txt
set /p snblast=<1.txt
del 1.txt
echo filename %snblast%
copy "%snblast%" %ARCTEMP%
popd
 
::Создание 7z архива
C:\"Program Files"\7-Zip\7z.exe a -t7z -mhe=on "%$DST%\%$ARCHIVENAME%" @%$SRC% -scsWIN -mx=%$COMPR% -ssw -xr@%$EXC% -p%$PSW%
For /F "Delims=" %%i In ('DIR /B/O:-N %$DST%\backup??.??.????_??-??.7z') Do (
Set /A $COPIES-=1
If !$COPIES! LSS 0 DEL "%$DST%\%%i"
)
 
 
::удаление временных файлов *.jh и *.snb
DEL /Q %ARCTEMP%
 
pause


На данный момент батник очень не оптимизирован, но работает. Принцип действия:
Основная работа происходит с помощью команды архиватору, который, сверяясь с текстовым файлом add.txt из рабочей папки батника, в котором указаны полные пути до нужных файлов, собственно и архивирует эти необходимые файлы. Два тех самых файла *.jh и *.snb архивируются из временной папки, куда копируются из своего родного каталога по имени, которое определяется с помощью конструкции (например для *.snb)
Кликните здесь для просмотра всего текста

Код Windows Batch file
1
2
3
4
5
6
7
8
9
10
pushd %SNBFOLD%
::список файлов по убыванию по дате изменения записывается в текстовик
dir /b /O:-D /T:W /A:-D *.snb > 1.txt
::в качестве имени последнего измененного файла берется первая строка из сформированного текстовика 
set /p snblast=<1.txt
del 1.txt
::вывод имени для проверки
echo filename %snblast%
copy "%snblast%" %ARCTEMP%
popd


Про вариант с определением имени последнего измененного файла указанным ниже способом знаю, но почему то он не всегда отрабатывает как надо (часто не видит файлы, которые изменялись очень давно, но тем не менее являются последними измененными)
Кликните здесь для просмотра всего текста
Код Windows Batch file
1
2
3
4
5
6
7
8
9
10
pushd "%SNBFOLD%"
 
for /f "tokens=*" %%i in (' dir /b *.snb ') do (
 
    for /f "tokens=1" %%j in ( "%%~ti" ) do if "%%j"=="%date%" set "file=%%i"
 
)
 
echo lastshbfile "%file%" 
popd

Оптимизировать эту часть батника буду позже.

На выходе в каталоге c:\backup\Y у меня получается архив, в корне которого лежат файлы и папки; чтобы вернуть их на место приходится отдельно копировать каждый файл/папку на свое место. Меня интересуют способы, как можно сохранить структуру корневого каталога с файлами C:\X при архивировании, т.е. в архиве получается каталог \X, в котором по полным путям лежат необходимые файлы/папки и для восстановления каталога C:\X достаточно будет скопировать каталог из архива, подтвердив слияние.
Знаю, что это можно сделать, сначала скопировав, все нужные файлы/папки с сохранением структуры куда-то во временную папку и заархивировать ее, но может кто-нибудь подскажет иной способ
Ответ:
Код Windows Batch file
1
C:\"Program Files"\7-Zip\7z.exe a  -r -t7z -mhe=on "%$DST%\%$ARCHIVENAME%" @%$SRC% -scsWIN -mx=%$COMPR% -ssw -xr@%$EXC% -p%$PSW%
по-прежнему только записывает в корень архива файлы и папки, которые перечислены в add.txt
Вопрос: Удаление "неудаляемых" файлов и папок в Microsoft Windows

 
 
Задавая вопрос, обязательно указывайте свою ОС и тип файловой системы!
Перед тем как спрашивать здесь, попробуйте воспользоваться следующими советами:
  1. Возможно, что на файле просто стоит атрибут Read-Only. Снять его можно командой:
    attrib -R file
     
  2. Файл может не удаляться, так как используется каким ни будь процессом. Узнайте каким и завершите его. Сама замечательную утилиту от SysInternals.
     
    Кроме того, вам поможет программа
     
  3. Попробуйте удалить с помощью файлового менеджера FAR через его функцию "Уничтожить файл" (wipe the file) которая вызывается по Alt+Del. (Это отлично работает даже в таком сложном случае: русское имя с пробелами и с точкой в конце. Проверено на FAR version 1.70 beta 3)
     
  4. Напрямую невозможно удалить файлы/папки с зарезервированными именами устройств, такими как AUX, CON, COM1, PRN или LPT1. Решение описано в статье kb :
    Код:
    Попробуйте удалить командой DEL (для файлов) или RD (для каталогов), при этом
    - для FAT используйте wildcards ? и *:
       DEL PR?.*
       DEL LPT?.*

    - на NTFS подставляйте перед буквой диска \\.\ или \\?\
       DEL \\.\c:\prn\foo\ltp1

  5. Если не удаляется файл на NTFS, у которого не указан владелец, перед удалением сделайте владельцем пользователя, от которого вы будете удалять это файл. (Назначить владельца можно, имея права администратора, логично его и сделать владельцем.)
     
  6. При проблемах с удалением файлов с длинными именами пробуем через
    Если слишком длинное полное имя (с путём) - можно сделать следующее:
    текущий каталог расшарить с полным доступом - зайти в него и удалить(или подключить как диск и оттуда удалить).
     
  7. Если средствами всё-же не получилось, то попробуйте удалить файл из-под другой ОС.
    Это может быть что-то загружаемое с дискеты или CD, как на пример Recovery Console, DOS-NTFS, WinPE, или LiveCD дистрибутив Linux с поддержкой вашей ФС.
     
  8. Иногда встречается комбинация причин, усложняющая процесс удаления файла. Например, при проблемном имени файла нельзя изменить права доступа с помощью GUI-редактора ACL.
     
    В этом случае можно воспользоваться утилитой Subinacl из Server Resource Kit с параметром /onlyfile  для смены владельца и разрешений на файл, недоступный иным образом, например:
      subinacl /onlyfile "\\?\c:\путь_к_проблемному_файлу" /setowner=Домен\Администратор /grant=Домен\Администратор=F

     
    Данная командная строка изменяет файл C:\путь_к_проблемному_файлу, содержащий конечный пробел, таким образом, что учетная запись Домен\Администратор становится владельцем файла и получает полный доступ к нему. Теперь можно удалить файл с помощью команды Del с тем же синтаксисом «\\?\».
     
    Подробнее см. статью kb
     
  9. Если в папку NTFS примонтирован раздел, то при доступе к нему в рамках ФС базового раздела невозможно удалить файлы/папки в корзину (см. статью kb ).
     
    Т.е. если в папку C:\Большой_Диск примонтирован другой раздел, то файлы с примонтированного раздела нельзя удалять, пользуясь путём через эту папку, например, C:\Большой_Диск\Ещё_куда-нибудь\Удали.Меня
     
    Решение - удалять, минуя корзину (Shift+Del) или удалять в корзину непосредственно на том разделе, а не через точку монтирования
Ответ: Я обратил внимание что иногда, когда FAR отказывается удалять какие-то файлы, помогает RAR m -m0 trash ...
 
Потом я вычитал в соответствующих конференциях что это зависит от того, какие функции из Win32 API и в какой последовательности используются для работы с файловой системой. Поистене велик и загадочен...
Вопрос: Определение файла в папке, его печать и удаление и зацикливание

Вот мой скрипт

Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'On Error Resume Next
'Автоматическая печать PDF-файлов, появляющихся в определенной папке
'Глобальные переменные
Set gFSO = CreateObject("Scripting.FileSystemObject")
Set gShell = CreateObject("WScript.Shell")
'Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
gWatchFolder = "C:\Users\SergeiSorokin\Desktop\test\"
'Основной цикл
While true
 Set lFolder = gFSO.GetFolder(gWatchFolder)
 Set lFiles = lFolder.Files
 For Each lFile In lFiles
  PrintFile(gWatchFolder & lFile.Name)
 Next
 WScript.Sleep(1)
WEnd
 
'Функция печати конкретного pdf-файла
Sub PrintFile(pFileName)
 'Ждем некоторе время (пока файл до конца запишется) 
 WScript.Sleep(3)
 'msgbox(pFileName)
 'Мы (больше) не боимся пробелов :Р
 Dim objFS, objShell, objFolderItems
Dim strMask, arrFolders, strArguments, strVerb, intShowMode, strTemp, i, j
 
strMask = "*.pdf": strArguments = "": strVerb = "print": intShowMode = 0
arrFolders = Array("C:\Users\SergeiSorokin\Desktop\test")
Set objShell = CreateObject("Shell.Application")
If objShell.NameSpace(&h4).Items.Count > 1 Then
    Set objFS = CreateObject("Scripting.FileSystemObject")
    For i = 0 To UBound(arrFolders)
        If objFS.FolderExists(arrFolders(i)) Then
            Set objFolderItems = objShell.NameSpace(arrFolders(i)).Items
            objFolderItems.Filter 64 + 128, strMask
            On Error Resume Next
            For j = 0 To objFolderItems.Count - 1
                strTemp = objFolderItems.Item(j).Name
                objShell.ShellExecute strTemp, strArguments, arrFolders(i), strVerb, intShowMode
                If Err.Number = 0 Then
                    WScript.Echo "Задание печати файла " & strTemp & " обработано успешно."
                Else
                    WScript.Echo "Ошибка " & Err.Number & " при печати файла " & strTemp & vbNewLine & Err.Description
                    Err.Clear
                End If
            Next
            On Error GoTo 0
        Else
            WScript.Echo "Не найден путь " & arrFolders(i)
        End If
    Next
    Set objFolderItems = Nothing: Set objFS = Nothing
Else
    WScript.Echo "Не найдено ни одного подключения к принтеру."
End If
Set objShell = Nothing
WScript.Quit 0
gFSO.DeleteFile(pFileName)
 If gFSO.FileExists(pFileName) Then
  'Мало ли чего может случиться, лучше пусть у Иван Иваныча перестанет печатать, чем один файл много раз уйдет на принтер
  'msgbox("Не удалось удалить файл " & pFileName & "! Позвоните Василию по т. 123-456)
  WScript.Quit
 'Else
  'Пока не реализовано
  'ToLog("Файл " & lFileName & " удален.")
 End If
End sub
Что происходит: при попадании файла в папку печать идет, файл не удаляется. При последующих добавлениях файла в папку ничего не происходит.

Помогите, пожалуйста.

Добавлено через 1 час 17 минут
Всё, сделал, только осталось подправить интервалы времени, чтобы работало без ошибок.

Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'Автоматическая печать PDF-файлов, появляющихся в определенной папке
'Глобальные переменные
Set gFSO = CreateObject("Scripting.FileSystemObject")
Set gShell = CreateObject("WScript.Shell")
'Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
gWatchFolder = "C:\Users\SergeiSorokin\Desktop\test\"
'Основной цикл
While true
 Set lFolder = gFSO.GetFolder(gWatchFolder)
 Set lFiles = lFolder.Files
 For Each lFile In lFiles
  PrintFile(gWatchFolder & lFile.Name)
 Next
 WScript.Sleep(1)
WEnd
 
'Функция печати конкретного pdf-файла
Sub PrintFile(pFileName)
 'Ждем некоторе время (пока файл до конца запишется) 
 WScript.Sleep(3)
 'msgbox(pFileName)
 'Мы (больше) не боимся пробелов :Р
 
 Dim objFS, objShell, objFolderItems
Dim strMask, arrFolders, strArguments, strVerb, intShowMode, strTemp, i, j
 
strMask = "*.pdf": strArguments = "": strVerb = "print": intShowMode = 0
arrFolders = Array("C:\Users\SergeiSorokin\Desktop\test")
Set objShell = CreateObject("Shell.Application")
If objShell.NameSpace(&h4).Items.Count > 1 Then
    Set objFS = CreateObject("Scripting.FileSystemObject")
    For i = 0 To UBound(arrFolders)
        If objFS.FolderExists(arrFolders(i)) Then
            Set objFolderItems = objShell.NameSpace(arrFolders(i)).Items
            objFolderItems.Filter 64 + 128, strMask
            On Error Resume Next
            For j = 0 To objFolderItems.Count - 1
                strTemp = objFolderItems.Item(j).Name
                objShell.ShellExecute strTemp, strArguments, arrFolders(i), strVerb, intShowMode
                If Err.Number = 0 Then
                    WScript.Echo "Задание печати файла " & strTemp & " обработано успешно."
                Else
                    WScript.Echo "Ошибка " & Err.Number & " при печати файла " & strTemp & vbNewLine & Err.Description
                    Err.Clear
                End If
            Next
            On Error GoTo 0
        Else
            WScript.Echo "Не найден путь " & arrFolders(i)
        End If
    Next
    Set objFolderItems = Nothing: Set objFS = Nothing
Else
    WScript.Echo "Не найдено ни одного подключения к принтеру."
End If
Set objShell = Nothing
 
 gFSO.DeleteFile(pFileName)
End sub
С интервалами кто может помочь?
Получается, что если в процессе ничего быстро не нажимать то все работает. А если в выскочившем окне быстро нажать "ок", то весь процесс сбивается.

Освещая проблему - настраиваю сетевой принтер, драйверов нормальных не нашлось. Установил PDF принтер.
Теперь настраиваю автоматическую печать с папки. Теперь надо чтобы любой человек не задумывался над тем как это работает, просто печатал.
Ответ: Спасибо большое.

Сделал следующим образом:

Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'Автоматическая печать PDF-файлов, появляющихся в определенной папке
'Глобальные переменные
Set gFSO = CreateObject("Scripting.FileSystemObject")
Set gShell = CreateObject("WScript.Shell")
'Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
gWatchFolder = "C:\Users\SergeiSorokin\Desktop\test\"
'Основной цикл
While true
 Set lFolder = gFSO.GetFolder(gWatchFolder)
 Set lFiles = lFolder.Files
 For Each lFile In lFiles
  PrintFile(gWatchFolder & lFile.Name)
 Next
 WScript.Sleep(1)
WEnd
 
'Функция печати конкретного pdf-файла
Sub PrintFile(pFileName)
 'Ждем некоторе время (пока файл до конца запишется) 
 WScript.Sleep(3)
 'msgbox(pFileName)
 'Мы (больше) не боимся пробелов :Р
 
 Dim objFS, objShell, objFolderItems
Dim strMask, arrFolders, strArguments, strVerb, intShowMode, strTemp, i, j
 
strMask = "*.pdf": strArguments = "": strVerb = "print": intShowMode = 0
arrFolders = Array("C:\Users\SergeiSorokin\Desktop\test")
Set objShell = CreateObject("Shell.Application")
If objShell.NameSpace(&h4).Items.Count > 1 Then
    Set objFS = CreateObject("Scripting.FileSystemObject")
    For i = 0 To UBound(arrFolders)
        If objFS.FolderExists(arrFolders(i)) Then
            Set objFolderItems = objShell.NameSpace(arrFolders(i)).Items
            objFolderItems.Filter 64 + 128, strMask
            On Error Resume Next
            For j = 0 To objFolderItems.Count - 1
                strTemp = objFolderItems.Item(j).Name
                objShell.ShellExecute strTemp, strArguments, arrFolders(i), strVerb, intShowMode
                If Err.Number = 0 Then
                    WScript.Echo "Задание печати файла " & strTemp & " обработано успешно."
                Else
                    WScript.Echo "Ошибка " & Err.Number & " при печати файла " & strTemp & vbNewLine & Err.Description
                    Err.Clear
                End If
            Next
            On Error GoTo 0
        Else
            WScript.Echo "Не найден путь " & arrFolders(i)
        End If
    Next
    Set objFolderItems = Nothing: Set objFS = Nothing
Else
    WScript.Echo "Не найдено ни одного подключения к принтеру."
End If
Set objShell = Nothing
 WScript.Sleep(10000)
 gFSO.DeleteFile(pFileName)
End sub
оказалось проблема была в том, что стояла маленькая задержка WScript.Sleep. значения даются в миллисекундах, я ставил 3, 10, тестировал - не выходило. файл удалялся раньше чем печатался. потом дошло, что надо попробовать больше. поставил 10000 получилось.
Вопрос: Подозрительный файлы требующие сетевого соединения

Добрый день.
Мой файервол Outpost зафиксировал странное поведение в обоих браузерах (в Мозиле и Экслорере).
Я снял принсткирины с сообщений файервола и поместил их в то, что первое попалось под руку, в ворд (прикрепленный файлы "принтскрины1" и "принтсрины2")
Вначале я не хотел давать файлам разрешение на сетевое соединение. Нажимал в файерволе кнопку "Блокировать", в таком случае оба браузера отказались работать.
Теперь по порядку:
1) Первый файл Amhooker.dll (из каталога sistem32). Он стал просить устанавливать сетевое соединение через Мозилу.
Я его немного погуглил и выяснил, что вроде как это драйвер для мыши. Но его данные немного отличаются от стандартных. Дата создания этого файла у меня 11.02.2007, а везде написано, что дата его создания 10.02.2007. Мышь я использую другую.
2) Второй файл ieframe.dll (из каталога sistem32) стал просить установить сетевое соединение через эксплорер. Также через эксплорер попытались выйти в интернет еще 3 файла.
Частично их размещение видно на принстрине.
Находятся они в каталоге с/windows/winsxs
Нашел там один файл, вместо трех. Файл atl80.dll
4) Ни один из найденных файлов удалить руками не получается.
5) Систему перестанавливал буквально вчера. Переустанавливал потому, что нашел в ней несколько троянов.

Подскажите, пожалуйста, что это? Вирусы, трояны? Что с ними делать?
Заранее, спасибо.
Ответ:
Сообщение от thyrex
Ничего плохого в логах. Ну а на скринах и увидеть что-то невозможно.
Принтскрины не удались...
Отправил файлы Касперском.
Вот ответ:
Здравствуйте,

Это сообщение сформировано автоматической системой приёма писем. Сообщение содержит информацию о том, какие вердикты на файлы (если таковые есть в письме) выносит Антивирус с последними обновлениями.

Amhooker.dll,
ATL80.dll,
msvcm80.dll,
msvcp80.dll,
msvcr80.dll

Вредоносный код в файлах не обнаружен.

ieframe.dll

Получен неизвестный файл, он будет передан в Вирусную Лабораторию.

С уважением, Лаборатория Касперского


Посмотрим, что будет дольше.

Добавлено через 29 минут
Пришел ответ от ДРвеба.
Ваш запрос был обработан Автоматической Системой. Присланный Вами файл находится в базе доверенных (чистых) файлов Dr.Web и не представляет угрозы.


Если Вы уверены, что данный файл представляет угрозу, пожалуйста, сообщите подробности в ответе на данное письмо.


Тем временем у меня: перестал отключаться интернет. Окно "Состояние подключения по локальной сети" просто зависает. При его отключении через Диспетчер задач виндовс выдает сообщение «Выбрано завершение не отвечающей программы explorer.exe. Программа не отвечает».
После совершения действия интернет не включается. Виндовс начинает зависать.
При отключении компьютера, не происходит Завершение работы виндовс. Компьютер не отключается.


Системы наверняка придется переустанавливать...
Но может быть перед этим у кого-нибудь есть какие нибудь мысли?
Может эксплорер снести?

Добавлено через 3 часа 41 минуту
Принтскрины:
Первый файл Amhooker.dll (из каталога sistem32) просить устанавливать сетевое соединение через Оперу.

Запрос на сетевое соединение от ATL80.dll и msvcr80.dll в Мозиле



Если не затруднит, прокомментируйте.
Вопрос: Распределение файлов из папки по части имени файла в папки, содержащие файлы с похожим именем (квитовка)

Добрый день!
Искал по форуму, но мне не удалось найти похожее решение.

К примеру имеется каталог K:\365P\notdefined. В нем находятся файлы, с именами KWTFCB*XXXXXX.TXT, KWTFCB*YYYYYY.TXT и т.д., где XXXXXX, YYYYYY - это произвольные числа, например 030929, 024714 и т.д.

Общая черта всех этих файлов - "KWTFCB" в начале имени файла.
Имеется структура каталогов, например "K:\365P\11-12-2015\1" в которых есть файлы, содержащие "*XXXXXX.TXT", "*YYYYYY.TXT" и т.д.

Стоит задача написать bat-файл, который рассортирует файлы из "K:\365P\notdefined" в каталоги, в которых будут найдены схожие файлы.

Пример:

K:\365P\notdefined\KWTFCB_PB1_ZNO14525663_770520151223_030929.TXT нужно поместить в папку K:\365P\24-12-2015\1, содержащую файл ZNO14525663_770520151223_030929.txt

Каким образом можно реализовать подобное сравнение файлов по маске, чтобы в папку, содержащую файлы, с заданной маской были добавлены файлы с заданной маской из папки назначения.
Ответ:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion;
set "A=K:\365P\notdefined"
set "B=K:\365P"
 
rem перебираем все файлы с расширением *.txt в каталоге A и всех его подкаталогах
for /R %B% %%I in (*.txt) do (
    rem извлекаем имя файла
    set f=%%~nI
    rem копируем из A в B соответствующий файл
    copy %A%kwtf*!f:~-6!.txt %%~dpI
)
Вопрос: Сохранение в файле консольного вывода программы в правильной кодировке

Система Windows 7 64

Помогите найти решение проблемы:

Имеется exe-файл который после запуска в консоли (cmd.exe) выводит текстовую информацию.
Файл, скорей всего, написан на Java. Информация выводится в кодовой странице 850.
При переключении в консоли кодовой страницы командой "chcp 850" информация на экран выводится правильно. А вот при попытке сохранить вывод консоли в файл "1> test.txt" все специальные символы, типа Ø ©, заменяются на знаки "?". Можно ли решить эту проблему?

Мне нужен результирующий текстовый файл содержащий весь вывод со всеми спецсимволами, как это сделать?

P.S. Перекодировать полученный файл в другую кодировку не предлагать. Это не решает проблемы, так как в файл вместо спецсимволов записываются знаки "?" и в какую бы кодировку не переводился файл, они все равно остаются знаками "?".
Ответ:
Сообщение от alpap
- очень мудро, их и здесь (одну строку) можно было показать, а где именно выводы с знаками вопросов и без в различных кодировках или все дружно побежали устанавливать одному только Вам нужную неизвестную программу. Давайте выводы в файлах и так и так, как реально они выводятся, для этого и просили архив, чтобы символы не терялись.
В третьем посте я даже скриншоты выложил, что видно на экране, а что выводится в файл. Что еще нужно?

Сообщение от alpap
... может тут "собака и зарыта". Допустим, написанная на питоне Ваша программа, себя и свое выводит и в OEM, а то что берет с сервера с его а-ля символами как может так и подносит и какие из спецсимволов потом они не могут подружить с cmd, тут и бяка и не все из консоли можно вывести в файл, попробуйте вывести в файл этот симпатичный символ:

Windows Batch file
1
2
3
@echo off
for /f %%a in ('cls') do echo.%%~a
pause>nul
Вот этот код:

Windows Batch file
1
2
for /f %%a in ('cls') do echo.%%~a > text.txt
pause
Прекрасно все выводит в файл:



Сообщение от volodin661
разве я написал, что это решение проблемы?
сей процесс называется анализ.
Добавлено через 13 минут
не боясь сильно ошибиться,
скажу, что показывающий НЕ ТЕ СИМВОЛЫ файл под русской локалью
будет хорошо выглядеть под Windows с западно-европейской локалью.
Я знаком с анализом. И боюсь, что вы все таки ошибаетесь. Прежде чем писать посты я долго и упорно проверял все, что сам мог придумать и проверить. И естественно я посмотрел в HEX-редакторе, что выводится в файл - туда, вместо спецсимвола, выводится символ знак вопроса с кодом 0x3F, поэтому никакая перекодировка файла не поможет, знак вопроса так и останется знаком вопроса.