写脚本怎么定义脚本的编码格式

写脚本怎么定义脚本的编码格式,第1张

要定义脚本的编码格式,需要在脚本的开头添加如下特殊注释:

# -*- coding: utf-8 -*-

此注释可以将脚本的编码修改为utf-8,也可以修改为其他的编码格式,只需将utf-8替换为相应的编码脊枣格式即仔野州可。例如,为了指定脚本的编码格式为gbk,只需将utf-8替念蔽换为gbk即可:

# -*- coding: gbk -*-

首先,我得知道这个文件具体采用的是裤顷什么样的编码,如果是ISO-8859我将会把它转成UTF-8,其他的ASCII这些都先不做处理,这里可以使用file filename或者是enca iconv

enca需要获取下:sudo apt-get install enca

iconv的一般用法是:(可以man iconv)

-f from code 源文件编码

-t to code 目标文件编码

-o output file 保存为文件

例子:

iconv -f GB2312 -t UTF-8 -o google.txt google.txt

将google.txt的编码由GB2312更新为UTF-8

enca也同上用法,一般在脚本中对于未曾提供的语言,enca不会报错,这样可以保证脚本顺利执行

enca -L zh_CN file 检查文件编码

enca -L zh_CN -x UTF-8 file 将文件编码修改为UTF-8并覆盖文件

具体的用法都可以去查看冲纯誉man手册或者google之

好了,不多说,查看脚本吧!

#!/bin/bash -x

#由于之前使用windows系统来存放过一些文本文件,利用dropbox同步过来的时候,文件发生乱码,故写脚本来散段批量处理

#这里是对所有的需求文件进行处理,后续可根据修改目录进行处理

SUBFIX="txt html htm conf"

#cd /home/gavin/tmp

if [ -z $1 ]then

cd $PWD

else

if [ -d $1 ]then

cd $1

else

echo " $1 is not exist"

exit 1

fi

fi

for i in $SUBFIX

do

files=`find . -name "*.$i"`

for f in $files

do

type=`file $f|awk -F':' '{print $2}' |awk '{print $1}'` #获取文件类型

if [ $type = "ISO-8859" ]then

#iconv -f GB2312 -t UTF-8 -o $f $f

enca -L zh_cn -x UTF-8 $f

else

echo "$f encoding is :$type"

fi

done

done

只要windows的都可以,3种方法,第一种放到你的用户目录下的 “开始」菜单”——程序——启动目录里,如果是放all users目录下那么就是所有用户开机都会运行该vbs,如果是某个用户比如admin的开始菜单——程序——启动里,那么就单个用户会启动。

还有安全策略里也有相关可以设置,你可以手动设置,我记得组策略我做过实验设置后是所有用户登录都会自动启动。不能像上面那种指定某个用户。

最后一种其实就是用 VBS代码来实现上面2种,第一种拷贝下就行了(提供一个思路,比如你可以多做个VBS,这个VBS就是用来做拷贝的,将有用的VBS拷贝到启动目录旁誉下,然后再进行自我删除VBS是用脚本引擎的,所以一打开后文件是可以被删除的。我做过这样的实运卜段验~)

还有就是用代码来修改安全策略,并重启。

至于是在哪项策略,你可以自己百度搜下,“windows策略实现开机启动文件”我以前就是百度搜到的。至于具体代码了,拷贝那个最简单,弊唤组策略那个也不难你还是自己动下脑筋, 可以锻炼思维。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12509446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存