vbs实现unicode和ascii的转化

摘要:
三、参考文献http://msdn.microsoft.com/en-us/library/aa368046%28VS.85%29.aspxIV.OpenTextFile和CreateTextFile使用CreateTextFile方法创建指定的文件并返回TextStream对象,该对象可用于读取或写入创建的文件。需要FileSystemObject或Folder对象的名称。如果忽略此值,则无法覆盖现有文件。布尔值指示文件是以Unicode还是ASCII文件格式创建的。对象必须选择OpenTextFile参数对象。输入/输出模式是以下三个常量之一:ForReading、ForWriting或ForAppending。当允许创建新文件时为True,否则为false。将iomode参数设置为以下设置之一:用于读取的常量值描述1以只读模式打开文件。


一 Copy a Unicode File to an ANSI File

WiToAnsi.vbs文件:

vbs实现unicode和ascii的转化第1张' Utility to rewrite a Unicode text file as an ANSI text file
vbs实现unicode和ascii的转化第1张'
 For use with Windows Scripting Host, CScript.exe or WScript.exe
vbs实现unicode和ascii的转化第1张'
 Copyright (c) 1999, Microsoft Corporation
vbs实现unicode和ascii的转化第1张'
vbs实现unicode和ascii的转化第1张
Option Explicit
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
' FileSystemObject.CreateTextFile and FileSystemObject.OpenTextFile
vbs实现unicode和ascii的转化第1张
Const OpenAsASCII   = 0
vbs实现unicode和ascii的转化第1张
Const OpenAsUnicode = -1
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
' FileSystemObject.CreateTextFile
vbs实现unicode和ascii的转化第1张
Const OverwriteIfExist = -1
vbs实现unicode和ascii的转化第1张
Const FailIfExist      = 0
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
' FileSystemObject.OpenTextFile
vbs实现unicode和ascii的转化第1张
Const OpenAsDefault    = -2
vbs实现unicode和ascii的转化第1张
Const CreateIfNotExist = -1
vbs实现unicode和ascii的转化第1张
Const FailIfNotExist   = 0
vbs实现unicode和ascii的转化第1张
Const ForReading = 1
vbs实现unicode和ascii的转化第1张
Const ForWriting = 2
vbs实现unicode和ascii的转化第1张
Const ForAppending = 8
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
Dim argCount:argCount = Wscript.Arguments.Count
vbs实现unicode和ascii的转化第1张
If argCount > 0 Then If InStr(1, Wscript.Arguments(0), "?", vbTextCompare) > 0 Then argCount = 0
vbs实现unicode和ascii的转化第1张
If (argCount = 0Then
vbs实现unicode和ascii的转化第1张    Wscript.Echo 
"Utility to copy Unicode text file to an ANSI text file." &_
vbs实现unicode和ascii的转化第1张        vbNewLine 
& "The 1st argument is the Unicode text file to read" &_
vbs实现unicode和ascii的转化第1张        vbNewLine 
& "The 2nd argument is the ANSI text file to write" &_
vbs实现unicode和ascii的转化第1张        vbNewLine 
& "If the 2nd argument is omitted, the Unicode file will be replaced"
vbs实现unicode和ascii的转化第1张    Wscript.Quit 
1
vbs实现unicode和ascii的转化第1张
End If
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
Dim inFile, outFile, inStream, outStream, inLine, FileSys, WshShell
vbs实现unicode和ascii的转化第1张
If argCount > 1 Then
vbs实现unicode和ascii的转化第1张    outFile 
= Wscript.Arguments(1)
vbs实现unicode和ascii的转化第1张    inFile  
= Wscript.Arguments(0)
vbs实现unicode和ascii的转化第1张
Else
vbs实现unicode和ascii的转化第1张    outFile 
= Wscript.Arguments(0)
vbs实现unicode和ascii的转化第1张    inFile  
= outFile & ".tmp"
vbs实现unicode和ascii的转化第1张    
Set WshShell = Wscript.CreateObject("Wscript.Shell")
vbs实现unicode和ascii的转化第1张    WshShell.Run 
"cmd.exe /c copy " & outFile & " " & inFile, 0True
vbs实现unicode和ascii的转化第1张
End If
vbs实现unicode和ascii的转化第1张
vbs实现unicode和ascii的转化第1张
Set FileSys = CreateObject("Scripting.FileSystemObject")
vbs实现unicode和ascii的转化第1张
Set inStream  = FileSys.OpenTextFile(inFile, ForReading, FailIfNotExist, OpenAsDefault)
vbs实现unicode和ascii的转化第1张
Set outStream = FileSys.CreateTextFile(outFile, OverwriteIfExist, OpenAsASCII)
vbs实现unicode和ascii的转化第1张
Do
vbs实现unicode和ascii的转化第1张    inLine 
= inStream.ReadLine
vbs实现unicode和ascii的转化第1张    outStream.WriteLine inLine
vbs实现unicode和ascii的转化第1张
Loop Until inStream.AtEndOfStream
vbs实现unicode和ascii的转化第1张inStream.Close
vbs实现unicode和ascii的转化第1张outStream.Close
vbs实现unicode和ascii的转化第1张
If argCount = 1 Then WshShell.Run "cmd.exe /c del " & inFile, 0


批处理中调用:
cscript WiToAnsi.vbs [path to Unicode file][path to ANSI file]

二 Copy a ANSI File to an Unicode File
只需对OpenTextFile和CreateTextFile的打开方式做调整即可。

三 参考
http://msdn.microsoft.com/en-us/library/aa368046%28VS.85%29.aspx

四  OpenTextFile和CreateTextFile的使用

CreateTextFile 方法

创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。

object.CreateTextFile(filename[, overwrite[, unicode]])

参数

object

必选项。应为 FileSystemObject 或 Folder 对象的名称。

filename

必选项。字符串表达式,指明要创建的文件。

overwrite

可选项。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。

unicode

可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。

OpenTextFile 方法

打开指定的文件并返回一个 TextStream 对象,可以读取、写入此对象或将其追加到文件。

object.OpenTextFile(filename[, iomode[, create[, format]]])

参数

object

必选项。应为 FileSystemObject 对象的名称。

filename

必选项。字符串表达式,指明要打开的文件名称。

iomode

可选项。输入/输出模式,是下列三个常数之一:ForReading,ForWriting,或 ForAppending。

create

可选项。Boolean 值,指出当指定的 filename 不存在时是否能够创建新文件。允许创建新文件时为 True,否则为 False。默认值为 False

format

可选项。三个 Tristate 值之一,指出以何种格式打开文件。若忽略此参数,则文件以 ASCII 格式打开。

设置

iomode 参数可为下列设置之一:

常数描述
ForReading1以只读模式打开文件。不能对此文件进行写操作。
ForWriting2以只写方式打开文件。不能对此文件进行读操作。
ForAppending8打开文件并在文件末尾进行写操作。

 format 参数可为下列设置之一:

常数描述
TristateUseDefault-2以系统默认格式打开文件。
TristateTrue-1以 Unicode 格式打开文件。
TristateFalse 0以 ASCII 格式打开文件。

完!

免责声明:文章转载自《vbs实现unicode和ascii的转化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ajax的三种实现及JSON解析jQuery 实现焦点图(banner)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ansi,UTF8,Unicode编码(续)

1.三种编码的回顾 Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件。 Unicode字符串,每个字符(汉字、英文字母)都占2个字节;在VC++的世界里,Microsoft比较鼓励使用Unicode,如wchar_t。 UTF8是Unicode一种压缩形式,英文A在unicode中表示为0x0041,英语中这种存...

python2.7中的字符编码问题

转自:https://www.cnblogs.com/liaohuiqiang/p/7247393.html 0. 写在前面 起因:之前写个数据预处理程序的时候遇到了点问题,用re模块的正则查找方法search时总是找不出来(找错了或者出乱码),于是捣鼓捣鼓。 经过:查资料,做实验,发现用utf8编码的str类型的字符串在search方法中行不通,因为st...

VBS中解决路径带空格的三种方法

vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: [c-sharp]view plaincopyprint? Set wshell=CreateObject("WScript.Shell")   wshell.Run  """C:/Program Fil...

Office365激活(无需密钥,无需下载软件)

1、关闭安全软件 2、新建一个文本文件,copy如下代码到一个文本文件中(如果步骤1中没有关闭安全软件,安全软件会检测如下代码为病毒会删掉这个文本文件) @echo off title Activate Office 365 ProPlus for FREE - MSGuides.com&cls&echo =================...

c# 对unicode解码

网上并没有太多完整的代码,只是对单字进行解码,或连续编码的解码,但如果中间插有字符或数字,就挂了 贴一小段代码,可以解决了,原理其实就是以4个字符中一组,进行解码 privateStringDecodeUnicode(StringdataStr) {Regexreg=newRegex(@"(?i)\\[uU]([0-9a-f]{4})");return...

R3下LoadLibrary初探

  LoadLibraryA/LoadLibraryW->LoadLibraryExA->LoadLibraryExW   到LoadLibraryExA后把第一个参数为dll路径,把路径改成Unicode字符串,再把Unicode字符串地址指针传给LoadLibraryExW.   调用方法如下   hook函数LoadLibrary防止远程注入D...