Тема: VBS: Оператор для объединения команд
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "des.txt","log.txt"
Пробовал & и && не работает, вылетает ошибка, как исправить? одной строчкой.
Спасибо за внимание!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → VBS: Оператор для объединения команд
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "des.txt","log.txt"
Пробовал & и && не работает, вылетает ошибка, как исправить? одной строчкой.
Спасибо за внимание!
есть похожий Операторы объединения команд? vbs &&
вот что я пытаюсь сделать
Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "des.txt","log.txt"
как бы ставил между ними && и & толку нет ругается и работать не хочет. подскажите как надо? нужно именно в строчку
DarkJoker1992, коверканье русского языка будет расцениваться как неуважение к участникам форума. Исправьте ошибки и добавьте префикс скриптового языка в название темы.
Запрещается отвечать в теме до исправлений.
DarkJoker1992
Ваш код записывается в одну строку:
CreateObject("Scripting.FileSystemObject").GetFile("des.txt").Copy "log.txt"
Об остальном далее.
извиняюсь, так устроит?
«Оператора объединения команд» не существует, поскольку то, что Вы именуете командами — и есть операторы.
Существует разделитель операторов «:»:
Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):fso.CopyFile "des.txt","log.txt"
извиняюсь, так устроит?
Предложения начинаются с заглавной буквы и заканчиваются знаками препинания.
Заработало, спасибо большое.
«Оператора объединения команд» не существует, поскольку то, что Вы именуете командами — и есть операторы.
Существует разделитель операторов «:»:
Dim fso:Set fso = CreateObject("Scripting.FileSystemObject"):fso.CopyFile "des.txt","log.txt"
Подскажите vbs работает только в ANSI? у меня в UNICODE выдаёт ошибку сразу , есть скрипт vbs для изменения кодировки с UNICODE в ANSI ?
DarkJoker1992, вообще непонятно о чём вопрос...
Подскажите vbs работает только в ANSI?
VBS - скриптовый язык программирования
ANSI - кодировка (один из способов кодирования символов)
В моём понимании это звучит как - "Доярка работает только в красное ведро ?"
Доярка молоко может налить в любое ведро. Хоть в красное, хоть в зелёное, хоть в маленькое с ручками внутрь.
В памяти VBScript и JScript хранят строки в Unicode, на сколько мне известно.
Изменение кодировки можно произвести через объект ADODB.Stream Примеры есть на форуме.
Но судя по тому, что вы пытаетесь читать файлы через FileSystemObject, то для него есть настройка в каком формате читать строку в память. Может Вам это нужнее ?
Подскажите vbs работает только в ANSI?
Если имеется в виду кодировка самого скрипта — нет. Превосходно работает и при сохранении в юникоде.
у меня в UNICODE выдаёт ошибку сразу sad
Упакуйте Ваш скрипт в архив и приложите. Покажите ошибку.
есть скрипт vbs для изменения кодировки с UNICODE в ANSI ?
Кодировки чего? Если файла — нет ничего проще: откройте файл для чтения с указанием кодировки юникод, прочтите содержимое в переменную, закройте файл, откройте файл для записи с указанием кодировки ANSI, запишите содержимое переменной в файл, закройте файл.
Если имеется в виду кодировка самого скрипта — нет. Превосходно работает и при сохранении в юникоде.
Всё же стоит уточнить: UTF16 LE c ВОМ или UTF16 BE без ВОМ
UTF16 LE с ВОМ и без. С UTF16 BE работает только без BOM.
alexii
Опыт подсказывает, что без ВОМ UTF16 LE не во всех случаях работает.
И это был не вопрос. )
Flasher, так поделитесь конкретными случаями такого опыта. Я только «за».
печаль файл оказался в кодировке UCS2 Little Endian, подскажите как мне изменить кодировку с помощью 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 всё норм работает
alexii, хорошо, поищу.
DarkJoker1992
В конце каждой строки двоеточие вообще не нужно.
Два раза создавать объект Scripting.FileSystemObject под разными переменными такая же бессмыслица.
подскажите как мне изменить кодировку с помощью vbs файла, который тоже в такой же кодировке
Зачем именно с помощью vbs в такой же кодировке? В чём соль и перец сего бульона? Почему не сделать это редактором?
двоеточие нужно потому что код в строчку становится -_- , а насчёт 2-го создания объекта спасибо, щас испробую.
alexii, хорошо, поищу.
DarkJoker1992
В конце каждой строки двоеточие вообще не нужно.
Два раза создавать объект Scripting.FileSystemObject под разными переменными такая же бессмыслица.
DarkJoker1992
А. Т.е. весь код записывается в строчку? Смысл? Да и есть ряд конструкций, где это вызовет ошибки.
P.S.: Отвечайте без цитирования, пож-та.
Спасибо, ваша подсказка помогла, теперь ошибка в 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 :
DarkJoker1992, весь код:
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile("log.txt", 2, True).Write Replace(.OpenTextFile("dis.txt",,,-1).ReadAll, "'", "")
End With
почти, он всё равно чёт от меня хочет http://gyazo.com/e44349e45d8847ba8cc04b75d1233dca
Убрал лишнюю строку. А вообще не должен ругаться. Как запускается скрипт? dic.txt там же лежит?
не помогло, если можешь напиши пожалуйста код для изменения кодировки файла из UCS2 Little Endian в ANSI так намного мне проще будет.
DarkJoker1992
Кажется, понял о чём речь. О кодировке файла dis.txt. Поправил.
Ты ПРОСТО ПОСЛАННИК НЕБЕС!! СПАСИБО ОГРОМНОЕ
DarkJoker1992
Кажется, понял о чём речь. О кодировке файла dis.txt. Поправил.
Да куда уж мне до посланника.. Эт ж примитив.
ещё один вопрос,почему то когда первый раз запускаю пишет ошибка строка 2, закрываю ошибку ещё раз запускаю и норм всё поч так? может потому что запускаю из VBA?
Да куда уж мне до посланника.. Эт ж примитив.
А ошибка то какая на строке "End With"?
строка .OpenTextFile("log.txt", 2, True).Write Replace(.OpenTextFile("dis.txt",,,-1).ReadAll, "'", "") :
Ошибка файл не найден
Вижу, исправил на "строка 2".
А вот этот "первый раз" в какой именно момент происходит?
кароч как vbs мне пишет -_- ему не нравится это .OpenTextFile а если быть точнее то точка . . . самое что интересное пишет что нет файла, но Ошибка 2 строка 3 символ (точка). скинь пожалуйста сюда код ещё раз, а то мало ли я не то копирую.
Если пишет, что не найдет файл, то точка тут вообще ни при чём. Он не находит dis.txt в рабочей папке.
Так vbs или vba, я не пойму?
Код тот же. Чего его скидывать. Я его прямо тут и вбивал.
DarkJoker1992, начните использовать заглавные буквы в начале предложений и не стесняйтесь использовать знаки препинания.
Если пишет, что не найдет файл, то точка тут вообще ни при чём. Он не находит dis.txt в рабочей папке.
Так vbs или vba, я не пойму?
Код тот же. Чего его скидывать. Я его прямо тут и вбивал.
Спасибо тебе большое! нашол в чём была проблема, в гугле ввёл код ошибки, и понял что он хотел полный путь до файла, всё сразу заработало.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться