1 (изменено: DarkJoker1992, 2014-09-29 10:45:03)

Тема: VBS: Оператор для объединения команд

Dim fso   Set fso = CreateObject("Scripting.FileSystemObject")   fso.CopyFile "des.txt","log.txt"  

Пробовал & и && не работает, вылетает ошибка, как исправить? одной строчкой.
Спасибо за внимание!

2

Re: VBS: Оператор для объединения команд

есть похожий Операторы объединения команд? vbs &&

DarkJoker1992 пишет:

вот что я пытаюсь сделать

Dim fso   Set fso = CreateObject("Scripting.FileSystemObject")   fso.CopyFile "des.txt","log.txt"  

  как бы ставил между ними && и & толку нет ругается и работать не хочет. подскажите как надо? нужно именно в строчку


DarkJoker1992, коверканье русского языка будет расцениваться как неуважение к участникам форума. Исправьте ошибки и добавьте префикс скриптового языка в название темы.

Запрещается отвечать в теме до исправлений.

3 (изменено: Flasher, 2014-09-29 02:54:35)

Re: VBS: Оператор для объединения команд

DarkJoker1992
Ваш код записывается в одну строку:

CreateObject("Scripting.FileSystemObject").GetFile("des.txt").Copy "log.txt"

Об остальном далее.

4 (изменено: DarkJoker1992, 2014-09-28 22:54:32)

Re: VBS: Оператор для объединения команд

извиняюсь, так устроит?

5

Re: VBS: Оператор для объединения команд

«Оператора объединения команд» не существует, поскольку то, что Вы именуете командами — и есть операторы.

Существует разделитель операторов «:»:

Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):fso.CopyFile "des.txt","log.txt"

6

Re: VBS: Оператор для объединения команд

DarkJoker1992 пишет:

извиняюсь, так устроит?

Предложения начинаются с заглавной буквы и заканчиваются знаками препинания.

7 (изменено: DarkJoker1992, 2014-09-29 12:14:04)

Re: VBS: Оператор для объединения команд

Заработало, спасибо большое.

alexii пишет:

«Оператора объединения команд» не существует, поскольку то, что Вы именуете командами — и есть операторы.

Существует разделитель операторов «:»:

Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):fso.CopyFile "des.txt","log.txt"

8 (изменено: DarkJoker1992, 2014-09-29 16:46:35)

Re: VBS: Оператор для объединения команд

Подскажите vbs работает только в ANSI? у меня в UNICODE выдаёт ошибку сразу , есть скрипт vbs для изменения кодировки с UNICODE  в ANSI ?

9

Re: VBS: Оператор для объединения команд

DarkJoker1992, вообще непонятно о чём вопрос...

Подскажите vbs работает только в ANSI?

VBS - скриптовый язык программирования

ANSI - кодировка (один из способов кодирования символов)

В моём понимании это звучит как - "Доярка работает только в красное ведро ?"

https://vk.com/images/stickers/104/128.png
Доярка молоко может налить в любое ведро. Хоть в красное, хоть в зелёное, хоть в маленькое с ручками внутрь.
В памяти VBScript и JScript хранят строки в Unicode, на сколько мне известно.
Изменение кодировки можно произвести через объект ADODB.Stream Примеры есть на форуме.
Но судя по тому, что вы пытаетесь читать файлы через FileSystemObject, то для него есть настройка в каком формате читать строку в память. Может Вам это нужнее ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

10

Re: VBS: Оператор для объединения команд

Подскажите vbs работает только в ANSI?

Если имеется в виду кодировка самого скрипта — нет. Превосходно работает и при сохранении в юникоде.

у меня в UNICODE выдаёт ошибку сразу sad

Упакуйте Ваш скрипт в архив и приложите. Покажите ошибку.

есть скрипт vbs для изменения кодировки с UNICODE  в ANSI ?

Кодировки чего? Если файла — нет ничего проще: откройте файл для чтения с указанием кодировки юникод, прочтите содержимое в переменную, закройте файл, откройте файл для записи с указанием кодировки ANSI, запишите содержимое переменной в файл, закройте файл.

11

Re: VBS: Оператор для объединения команд

alexii пишет:

Если имеется в виду кодировка самого скрипта — нет. Превосходно работает и при сохранении в юникоде.

Всё же стоит уточнить: UTF16 LE c ВОМ или UTF16 BE без ВОМ

12

Re: VBS: Оператор для объединения команд

UTF16 LE с ВОМ и без. С UTF16 BE работает только без BOM.

13 (изменено: Flasher, 2014-09-29 19:53:39)

Re: VBS: Оператор для объединения команд

alexii
Опыт подсказывает, что без ВОМ UTF16 LE не во всех случаях работает.
И это был не вопрос. )

14

Re: VBS: Оператор для объединения команд

Flasher, так поделитесь конкретными случаями такого опыта. Я только «за».

15 (изменено: DarkJoker1992, 2014-09-29 22:11:48)

Re: VBS: Оператор для объединения команд

печаль файл оказался в кодировке UCS2 Little Endian, подскажите как мне изменить кодировку с помощью vbs файла, который тоже в такой же кодировке -_- . . .

16

Re: VBS: Оператор для объединения команд

Покажу вам код в котором ошибка вылазит что бы вам было понятней


   Dim fso  :

   Set fso = CreateObject("Scripting.FileSystemObject")  :

   fso.CopyFile "dis.txt","log.txt"  :
  
   Const FOR_READING = 1 :
   Const FOR_WRITING = 2 :

       Dim oFSO, sText, oTextStream, sFile :

       sFile = "log.txt" :
  
       Set oFSO = CreateObject("Scripting.FileSystemObject") :
       Set oTextStream = oFSO.OpenTextFile(sFile, FOR_READING, False) :
       sText = oTextStream.ReadAll() :
       oTextStream.Close :

       sText = Replace(sText, "@", "") :

       Set oTextStream = oFSO.OpenTextFile(sFile, FOR_WRITING, True) :
       oTextStream.Write sText :
       oTextStream.Close :
   
       Set oTextStream = Nothing :
       Set oFSO = Nothing :

пишет строка 25 символ 8 Ошибка недопустимый вызов или аргумент процедуры, как только через notepad ставлю кодировку ANSI всё норм работает

17 (изменено: Flasher, 2014-09-29 22:51:17)

Re: VBS: Оператор для объединения команд

alexii, хорошо, поищу.

DarkJoker1992
В конце каждой строки двоеточие вообще не нужно.
Два раза создавать объект Scripting.FileSystemObject под разными переменными такая же бессмыслица.

DarkJoker1992 пишет:

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

Зачем именно с помощью vbs в такой же кодировке? В чём соль и перец сего бульона? Почему не сделать это редактором?

18

Re: VBS: Оператор для объединения команд

двоеточие нужно потому что код в строчку становится -_- , а насчёт 2-го создания объекта спасибо, щас испробую.

Flasher пишет:

alexii, хорошо, поищу.

DarkJoker1992
В конце каждой строки двоеточие вообще не нужно.
Два раза создавать объект Scripting.FileSystemObject под разными переменными такая же бессмыслица.

19 (изменено: Flasher, 2014-09-29 22:56:22)

Re: VBS: Оператор для объединения команд

DarkJoker1992
А. Т.е. весь код записывается в строчку? Смысл? Да и есть ряд конструкций, где это вызовет ошибки.

P.S.: Отвечайте без цитирования, пож-та.

20 (изменено: DarkJoker1992, 2014-09-29 23:03:35)

Re: VBS: Оператор для объединения команд

Спасибо, ваша подсказка помогла, теперь ошибка в 14 строке , символ 8 , пишет что не хватает "


   Dim fso  :

   Set fso = CreateObject("Scripting.FileSystemObject")  :

   fso.CopyFile "dis.txt","log.txt"  :
  
   Const FOR_READING = 1 :
   Const FOR_WRITING = 2 :

       Dim oFSO, sText, oTextStream, sFile :

       sFile = "log.txt":
       Set oTextStream = oFSO.OpenTextFile(sFile, FOR_READING, False) :
       sText = oTextStream.ReadAll() :
       oTextStream.Close :

       sText = Replace(sText, "@", "") :


       Set oTextStream = oFSO.OpenTextFile(sFile, FOR_WRITING, True) :
       oTextStream.Write sText :
       oTextStream.Close :
   
       Set oTextStream = Nothing :
       Set oFSO = Nothing :

21 (изменено: Flasher, 2014-09-30 00:04:39)

Re: VBS: Оператор для объединения команд

DarkJoker1992, весь код:

With CreateObject("Scripting.FileSystemObject")
  .OpenTextFile("log.txt", 2, True).Write Replace(.OpenTextFile("dis.txt",,,-1).ReadAll, "'", "")
End With

22 (изменено: DarkJoker1992, 2014-09-29 23:33:32)

Re: VBS: Оператор для объединения команд

почти, он всё равно чёт от меня хочет   http://gyazo.com/e44349e45d8847ba8cc04b75d1233dca

23

Re: VBS: Оператор для объединения команд

Убрал лишнюю строку. А вообще не должен ругаться. Как запускается скрипт? dic.txt там же лежит?

24

Re: VBS: Оператор для объединения команд

не помогло, если можешь напиши пожалуйста код для изменения кодировки файла из UCS2 Little Endian в ANSI так намного мне проще будет.

25 (изменено: Flasher, 2014-09-30 00:09:57)

Re: VBS: Оператор для объединения команд

DarkJoker1992
Кажется, понял о чём речь. О кодировке файла dis.txt. Поправил.

26

Re: VBS: Оператор для объединения команд

Ты ПРОСТО ПОСЛАННИК НЕБЕС!! СПАСИБО ОГРОМНОЕ

Flasher пишет:

DarkJoker1992
Кажется, понял о чём речь. О кодировке файла dis.txt. Поправил.

27

Re: VBS: Оператор для объединения команд

Да куда уж мне до посланника.. Эт ж примитив.

28 (изменено: DarkJoker1992, 2014-09-30 00:39:51)

Re: VBS: Оператор для объединения команд

ещё один вопрос,почему то когда первый раз запускаю пишет ошибка строка 2, закрываю ошибку ещё раз запускаю и норм всё поч так? может потому что запускаю из VBA?

Flasher пишет:

Да куда уж мне до посланника.. Эт ж примитив.

29

Re: VBS: Оператор для объединения команд

А ошибка то какая на строке "End With"?

30 (изменено: DarkJoker1992, 2014-09-30 00:46:51)

Re: VBS: Оператор для объединения команд

строка  .OpenTextFile("log.txt", 2, True).Write Replace(.OpenTextFile("dis.txt",,,-1).ReadAll, "'", "") :   
Ошибка файл не найден

31

Re: VBS: Оператор для объединения команд

Вижу, исправил на "строка 2".
А вот этот "первый раз" в какой именно момент происходит?

32

Re: VBS: Оператор для объединения команд

кароч как vbs мне пишет -_- ему не нравится это  .OpenTextFile  а если быть точнее то точка . . .  самое что интересное пишет что нет файла, но Ошибка 2 строка 3 символ (точка).  скинь пожалуйста сюда код ещё раз, а то мало ли я не то копирую.

33

Re: VBS: Оператор для объединения команд

Если пишет, что не найдет файл, то точка тут вообще ни при чём. Он не находит dis.txt в рабочей папке.
Так vbs или vba, я не пойму?
Код тот же. Чего его скидывать. Я его прямо тут и вбивал.

34

Re: VBS: Оператор для объединения команд

DarkJoker1992, начните использовать заглавные буквы в начале предложений и не стесняйтесь использовать знаки препинания.

35

Re: VBS: Оператор для объединения команд

Flasher пишет:

Если пишет, что не найдет файл, то точка тут вообще ни при чём. Он не находит dis.txt в рабочей папке.
Так vbs или vba, я не пойму?
Код тот же. Чего его скидывать. Я его прямо тут и вбивал.

Спасибо тебе большое! нашол в чём была проблема, в гугле ввёл код ошибки, и понял что он хотел полный путь до файла,   всё сразу заработало.