當前位置:首頁 » 網頁前端 » 腳本上的字元怎麼處理
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

腳本上的字元怎麼處理

發布時間: 2023-04-12 00:58:34

腳本亂碼怎麼解決方法

bat腳本在批處理的時候被經常用到,但是有時候不正確的使用,會導致在bat腳本中的中文,運行起來的時候顯示為亂碼,這個讓人很不爽,下面分享下自己解決這個問題的方法。

工具/原料

  • Bat腳本

  • 電腦

  • 方法/步驟

  • 習慣性的,我會在notepad工具中去編輯我的一些文本文件,如下如:

  • 9

    上圖,可以看到中文都可以顯示正常了。

  • 注意事項

  • 寫bat的時候 ,大家最好用文本去編輯,然後保存的時候,記得設置好他的編碼方式

❷ shell腳本里,如何刪除變數的最後一個字元

STR=123456abc

FINAL=`echo ${STR: -1}`

或者

FINAL=${STR: -1}

都可以讓FINAL獲得c這個最後一個字元

❸ asp怎麼處理字元展示腳本信息

<%
class stringoperations

****************************************************************************
@功能說明: 把字元串換為鎮茄螞char型數組
@參數說明: - str [string]: 需要轉換的字元串
@返回值: - [array] char型數組
****************************************************************************
public function tochararray(byval str)
redim chararray(len(str))
for i = 1 to len(str)
chararray(i-1) = mid(str,i,1)
next
tochararray = chararray
end function

****************************************************************************
@功能說明: 把一個數組轉換成一個字元串
@參數說明: - arr [array]: 需要轉換的數據
@返回值: - [string] 字元串
****************************************************************************
public function arraytostring(byval arr)
for i = 0 to ubound(arr)
strobj = strobj & arr(i)
next
arraytostring = strobj
end function

****************************************************************************
@功納譽能說明: 檢查源字元串str是否以chars開頭
@參數說明: - str [string]: 源字御埋符串
@參數說明: - chars [string]: 比較的字元/字元串
@返回值: - [bool]
****************************************************************************
public function startswith(byval str, chars)
if left(str,len(chars)) = chars then
startswith = true
else
startswith = false
end if
end function

****************************************************************************
@功能說明: 檢查源字元串str是否以chars結尾
@參數說明: - str [string]: 源字元串
@參數說明: - chars [string]: 比較的字元/字元串
@返回值: - [bool]
****************************************************************************
public function endswith(byval str, chars)
if right(str,len(chars)) = chars then
endswith = true
else
endswith = false
end if
end function

****************************************************************************
@功能說明: 復制n個字元串str
@參數說明: - str [string]: 源字元串
@參數說明: - n [int]: 復制次數
@返回值: - [string] 復制後的字元串
****************************************************************************
public function clone(byval str, n)
for i = 1 to n
value = value & str
next
clone = value
end function

****************************************************************************
@功能說明: 刪除源字元串str的前n個字元
@參數說明: - str [string]: 源字元串
@參數說明: - n [int]: 刪除的字元個數
@返回值: - [string] 刪除後的字元串
****************************************************************************
public function trimstart(byval str, n)
value = mid(str, n+1)
trimstart = value
end function

****************************************************************************
@功能說明: 刪除源字元串str的最後n個字元串
@參數說明: - str [string]: 源字元串
@參數說明: - n [int]: 刪除的字元個數
@返回值: - [string] 刪除後的字元串
****************************************************************************
public function trimend(byval str, n)
value = left(str, len(str)-n)
trimend = value
end function

****************************************************************************
@功能說明: 檢查字元character是否是英文字元 a-z or a-z
@參數說明: - character [char]: 檢查的字元
@返回值: - [bool] 如果是英文字元,返回true,反之為false
****************************************************************************
public function isalphabetic(byval character)
asciivalue = cint(asc(character))
if (65 <= asciivalue and asciivalue <= 90) or (97 <= asciivalue and asciivalue <= 122) then
isalphabetic = true
else
isalphabetic = false
end if
end function

****************************************************************************
@功能說明: 對str字元串進行大小寫轉換
@參數說明: - str [string]: 源字元串
@返回值: - [string] 轉換後的字元串
****************************************************************************
public function swapcase(str)
for i = 1 to len(str)
current = mid(str, i, 1)
if isalphabetic(current) then
high = asc(ucase(current))
low = asc(lcase(current))
sum = high + low
return = return & chr(sum-asc(current))
else
return = return & current
end if
next
swapcase = return
end function

****************************************************************************
@功能說明: 將源字元串str中每個單詞的第一個字母轉換成大寫
@參數說明: - str [string]: 源字元串
@返回值: - [string] 轉換後的字元串
****************************************************************************
public function capitalize(str)
words = split(str," ")
for i = 0 to ubound(words)
if not i = 0 then
tmp = " "
end if
tmp = tmp & ucase(left(words(i), 1)) & right(words(i), len(words(i))-1)
words(i) = tmp
next
capitalize = arraytostring(words)
end function

****************************************************************************
@功能說明: 將源字元str後中的過濾為
@參數說明: - str [string]: 源字元串
@返回值: - [string] 轉換後的字元串
****************************************************************************
public function checkstr(str)
if trim(str)="" or isnull(str) then
checkstr=""
else
checkstr=replace(trim(str),"","")
end if
end function

****************************************************************************
@功能說明: 將字元串中的str中的html代碼進行過濾
@參數說明: - str [string]: 源字元串
@返回值: - [string] 轉換後的字元串
****************************************************************************
public function htmlencode(str)
if trim(str)="" or isnull(str) then
htmlencode=""
else
str=replace(str,">",">")
str=replace(str,"<","<")
str=replace(str,chr(32)," ")
str=replace(str,chr(9)," ")
str=replace(str,chr(34),""")
str=replace(str,chr(39),"'")
str=replace(str,chr(13),"")
str=replace(str,chr(10) & chr(10), "</p><p>")
str=replace(str,chr(10),"<br> ")
htmlencode=str
end if
end function

****************************************************************************
@功能說明: 計算源字元串str的長度(一個中文字元為2個位元組長)
@參數說明: - str [string]: 源字元串
@返回值: - [int] 源字元串的長度
****************************************************************************
public function strlen(str)
if trim(str)="" or isnull(str) then
strlen=0
else
dim p_len,x
p_len=0
strlen=0
p_len=len(trim(str))
for x=1 to p_len
if asc(mid(str,x,1))<0 then
strlen=int(strlen) + 2
else
strlen=int(strlen) + 1
end if
next
end if
end function

****************************************************************************
@功能說明: 截取源字元串str的前lennum個字元(一個中文字元為2個位元組長)
@參數說明: - str [string]: 源字元串
@參數說明: - lennum [int]: 截取的長度
@返回值: - [string]: 轉換後的字元串
****************************************************************************
public function cutstr(str,lennum)
dim p_num
dim i,x
if strlen(str)<=lennum then
cutstr=str
else
p_num=0
x=0
do while not p_num > lennum-2
x=x+1
if asc(mid(str,x,1))<0 then
p_num=int(p_num) + 2
else
p_num=int(p_num) + 1
end if
cutstr=left(trim(str),x)&"..."
loop
end if
end function

end class
%>

❹ 電腦開機時出現「腳本行字元錯誤碼代碼源」,怎麼處理

1、清除一下IE瀏覽器的緩存,點IE上的工具——然後再選擇最下面的Internet選項,再點Internet刪除文件(記得勾上刪除所有離線內容),確定後再重新打開IE瀏覽器試試,同時請確認您使用的是IE6.0及以上版本。

2、您的網頁上清緩存,在網頁上選擇工具->Interner選項->刪除Cookies和刪除文件,然後再確定。

3、請您點擊IE瀏覽器中的「工具」,選擇「internet選項」,進入「安全」頁面,點擊「自定義級別」,將您的安全設置設為「低」。

4、清空一下IE瀏覽器的cookies文件,在IE瀏覽器中設置「禁止自動腳本更新」,並不要選擇「禁止運行ActiveX控制項」,然後再嘗試操作。

❺ jenkins插件怎麼處理執行腳本返回的字元串

ls *.* | grep -i "flag.dat" 列出當前目錄中文件名中含有點的文件並找含有flag.dat的文件,-i表示不區分大小寫!當有一個文件的文件名為fmstarflag.dat時,執行$JOBDIR/bin/fmstarupd.sh這個腳本,並且刪除
$LOADDIR/fmstarflag.dat,大體就這么個意思,要是還不懂的話,建議先學學shell的語法吧!

❻ shell腳本如何刪除指定字元串,文檔如下:

用正則匹配就可以了。
shell腳本regex正則表達式 和 字元串替換

任意字元
^行首匹配
$行尾匹配
^$表示空行,不含字元的行
^
$匹配只有單個空格的行
[0-9]
[a-zA-Z]
^[A-
Z]搜索以大寫字母開頭的行
[^A-Z]匹配大寫字母意外的任意字元
*表示匹配0個或若干個字元,如:a*,表示匹配0個或若干個a;
aa*表示匹配至少1個a
.*來表示0或若干個任意字元
e.e*表示匹配第一個e和最後一個e之間的任意字元
[-0-9]匹配一
個連字元或數字
[]a-z]匹配一個]或者字母
\{min,max\}匹配任意數目的字元串
[a-z]\{10\}只匹配10個
a-z字元的字元串
s/.\{5\}$// 刪除每行的最後5個字元
\(...\),n是1到9的數字,表示存儲用的寄存器,用\n來引
用存在寄存器中的內容
^\(.\)\1匹配行首的第一個字元,並將該字元存到1號寄存器中,然後匹配1號寄存器中的內容,這由\1的描述。該正則
表達式的最終效果是,如果一行的頭兩個字元相同,就匹配他們。
^\(.\).*\1$匹配一行中的頭一個字元(^.)跟最後一個字元(\1$)相
同的行。.*匹配中間的所有內容
^\(...\)\(...\)行中頭三個字元存在1號寄存器,接著的三個字元存在2號寄存器.
s/\(.*\)
\(.*\)/\2 \1/g 交換兩個欄位
.任何字元
^行首
$行尾
*前導的正則表達式重復0或若干次
[字
符表]字元中的任一字元
a..表示a後的2個字元
^wood表示行首的wood
x$表示行為的x
^INSERT$只包含
字元串INSERT的行
^$不包含任何字元的行
x*表示0或若干個連續的x
xx*表示1或多個連續的x
.*表示0活若干
個字元
w.*s表示以w開始,s結尾的任何字元串
[tT]小寫或大寫的t
[^字元表]表示任一不在字元表中的字元 [^0-9]
[^a-zA-Z]
\{min,max\}表示前導的正則表達式重復只燒min次,至多max次[0-9]\{3,9\}表示3到
9個數字
\(...\)表示將小括弧中匹配的字元串存儲到下一個寄存器中(1-9),
^\(.\)表示行中第1個字元存到1號寄存器
^\
(.\)\1表示行首戀歌字元,且他們相同
cut -c5 file把file文件中沒行的第5個字元析取出來;
用逗號分割的數
值列表,如-c1,13,50把第1,13,50個字元析取出來
cut -c20-50把第20到50之間的字元析取出來

who | cut
-c1-8
who | cut -c1-8,18- 析取行中的第1到8個字元(用戶名)和第18到行尾的字元(登錄時間)
cut -ddchar
-ffields file其中,dchar是數據中分割各欄位的分割符,fields表示要從文件file中析取出來的欄位.

段編號從1開始,而且格式跟以前將的用來指定字元位置的數字一樣(如-f1、2、8、-f1-3、-f4-)。
cut -d: -f1
/etc/passwd
如果已知欄位之間使用製表符分隔的,就可以給cut命令用-f選項而不用-c選項,好多了!還記得吧,這里用不著用-d選
項來指定分割符,因為
cut把製表符默認為分割符。
paste和cut正好相反,它不是把行分離開,而是把多行合並在一起。
paste
names numbrs文件names中的每一行都和numbers中的對應行顯示在一起,中間用製表符分割。
如果不想用製表符作默認分割,
可以使用-dchars指定分割符
paste -d'+' names addresses numbers
-s選項告訴paste把同
一文件中的行粘貼在一起,而不是從其他文件。如果只指定一個文件名,其效果是把文件中的所有行合並成一行,原來隔行之間用製表符或者有-d選項指定的分割
符分割。
sed是用來編輯數據的程序,意指流編輯器(stream editor)。與ed不同,sed不能用於交互,
-n選
項,然後使用p命令顯式指定
sed -n '1,2p' file只顯示前2行
sed -n '/Unix/p'
file只列印包含Unix的行
刪除行
d刪除整行文件
sed '1,2d' file刪除1和2行
記住sed默認把輸入
的所有行寫入標准輸出,所以生於行的文字,也就是從第3行到結尾,都被寫入標准輸出。
sed '5d'刪除第5行
sed
'/[Tt]est/d'刪除包含test或Test的行
sed -n '20,25p' test只顯示文件test的第20行到第25行
sed
'1,10s/unix/UNIX/g' intro報intro前10行中的unix改為UNIX
sed
'/jan/s/-1/-5/'將所有包含jan的行中第1個-1改為-5
sed 's/...//'
data刪除data文件每一行的前3個字元
sed 's/...$//' data刪除data文件每一行的最後3個字元
sed -n 'I'
text顯示文件text的所有行,把所有不可列印字元顯示為\nn,製表符顯示為\t
過濾器tr用來轉換來自標准輸入的字
符,tr命令的一般格式為
tr from-chars to-chars
tr e x <
intro把所有字母e轉換成x
tr命令的輸入必須重定向到文件intro,因為tr總是從標准輸入獲得輸入;轉換的結果寫入標准輸出,而原始文
件保持不變。
cut -d: -f1,6 /etc/passwd | tr : ' '
通過在管道線的最後加上適當的tr命令,就可以把冒號轉換成製表符,這樣產生的輸出更容易看
單引號中括的是製表符(盡管你看不到)。必須將它括在
引號中,以便穿過shell,使tr有機會看到它。
使用\nnn來給tr提供8進製表示的字元
一些ascii字元的八進制值
響 鈴
7
退格 10
製表符 11
新行 12
換行 12
換頁 14
回 車
15
轉義 33
date | tr ' ' '\12'此例中,tr接受date命令的輸出,並把所有的空格轉換成換行
tr
'[a-z]' '[A-Z]'
<intro將所有小寫轉換為大寫
-s選項,tr命令中的-s選項用來壓縮to-chars中重復的字元,換句話說,如果轉換完成後,有
to-chars中的某個字元連續出現多次,則這些連續相同的字元被替換為一個字元。
如下面的命令將冒號轉換為製表符,並將多個連續製表符替換為
單個製表符:
tr -s ':' '\11\'
tr -s ' ' ' '
<lotspaces通過-s將多個空格全部壓縮為單個空格
-d選項用來刪除掉輸入流中的字元,其一般格式為
tr -d
from-chars任何列在from-chars中的字元都會被從標准輸入中刪除。下例用tr來刪除文件intro中的所有空格:
tr -d ' '
<intro
當然sed 's/ //g' intro也可以得到同樣的效果
tr 'X' 'x' 把大X專成小x
tr '()'
'{}' 把所有左小括弧轉換成左大括弧,右小括弧專成右大括弧
tr '[a-z]' '[A-Z]' 把小寫轉大寫
tr '[A-Z]'
'[N-ZA-M]' 把A-M字母分別專成N-Z把N-Z轉成A-M
tr ' ' ''把所有製表符轉換成空格
tr -s ' '
''把多個空格轉換成單個空格
tr -d '\14' 刪除所有換頁字元(八進制14)
tr -d '[0-9]'刪除所有數字
grep
'[A-Z]' list list中包含一個大寫字母的行
grep '[0-9]' data中包含數字的行
grep '[A-Z]...[0-9]'
list list中包含以大寫字母開始、數字結尾的5個字元組合的行
grep '\.pic$' filelist
filelist中以.pic結尾的行
uniq in_file
out_file該格式中,uniq把in_file復制到out_file,處理過程中,去掉其中的重復行。如果不指定第2個參數out_file,結
果就寫入標准輸出;如果in_file沒有指定,那麼uniq就成了一個過濾器,從標准輸入讀取輸入。
>或<
重定向,覆蓋原有的內容
>>或<< 重定向,想文件末尾追加內容
tee 顯示在終端上的內容存儲到文件 ls |
tee >glx
-d 目錄
-e 存在
-f 普通文件
-r 進程可讀文件
-s 長度不為0
-w
進程可寫文件
-x 可執行
-L 鏈接文件
$# 傳給程序的參數個數,或者執行set命令設置的參數個數
$*
對位置參數等的集中引用
$@ 跟$*相似,區別在於當加入雙引號後("$@"),集中引用位置參數"$1","$2"...等
$0
正執行的程序名
$$ 正執行程序的進程id
$! 最後一個發生後台運行的程序的進程id
$? 最後一個在前台執行的程序的退出狀態
$-
當前有效選項標志
`command`符號之間的內容為需要執行的命令
make -C /lib/moles/`uname -r`/build
M=`pwd`
使用echo可以顯示字元串,但是不能格式化字元串,可以使用printf實現
printf "format" arg1 arg2
...
ln -s from to 把from鏈接到to上,所以to是from的符號鏈接
tree -d只顯示目錄
tree -L
2顯示2級目錄
字元串比較
s1 = s2 s1等於s2
s1 != s2 s1不等於s2
s1
s1不為空
-n s1 s1不為空
-z s1 s1為空
整數比較操作
-eq 等於
-ge
大於或等於
-gt 大於
-le 小於或等於
-lt 小於
-ne 不等於
[ "$x1" = 5 ]字元串比較
[
"$x1" -eq 5 ]整數比較
-a 邏輯與操作
-o 邏輯或操作
command1 &&
command2
則先執行command1,如果返回的退出狀態
為0,則執行command2;如果command1返回的退出狀態非0,則跳過command2
command1 ||
command2
和上邊的&&差不多,只是,僅僅當command1返回非0時,才執行command2
#!/bin/sh
append2=0
include_lib=1
if
[ -f cscope_i ];then
rm cscope_i
fi
for cscope_file in $*; do

if [ -f "$cscope_file" ] || [ -d "$cscope_file" ];then
# if [
$cscope_file = '-a' ];then
# append2=1
# continue
#
fi
#
# if [ $cscope_file = '-n' ];then
#
include_lib=0<F11>
# continue
# fi
if [ "$append2" = "1"
];then
find $cscope_file -maxdepth 1 -name '*.[cChH]' -o -name
'*.[cC][pP][pP]'>>cscope_i
else
find $cscope_file -name
'*.[cChH]' -o -name '*.[cC][pP][pP]'>>cscope_i
fi
else
if [
$cscope_file = '-a' ];then
append2=1
elif [ $cscope_file = '-n'
];then
include_lib=0
else
echo "Error: cannot read file
$cscope_file"
fi
fi
done
if [ -f cscope_i ];then
if [
"$include_lib" = "1" ];then
cscope -bi cscope_i

else
cscope -bki cscope_i
fi
rm cscope_i
fi

#linux(ubuntu)

❼ 批處理或者vbs腳本實現文件中字元串查找替換

寫個批處理腳本,有局限性不能處理UTF8文本, 另外對替換串(CCC AAA)有某些特殊符限制,先 test 再說吧

@echooff
set"f1=test1.txt"
set"f2=test2.txt"
set"cs=CCC=AAA"
cd/d"%~dp0"
echo;正在查找...
for/f"tokens=1*delims=:"%%i知仿in(
'type"%f2%"^|findstr/ng:"%f1%"')do(
echo%%j
set"h=%%j"
call:yky#%%i)
echo;&goto:next
:yky

set"h=!h:%cs%!"
endlocal&set"%1=%h%"&goto:eof
:next
echo替換並寫入文件...
(for指皮/f"tokens=1*delims=:"%%iin(
'type"%f2%"^|findstr/n.*')do(
set"h=%%j"

ifdefined#%%iset"h=!#%%i!"
>conecho;!h!
echo;!h!
唯猛差endlocal
))>"new.txt"
::move"new.txt""%f2%"
echo;&pause

❽ Unity3D腳本中文字元亂碼怎麼辦

setfso=createobject("scripting.filesystemobject")settxt1=fso.opentextfile("1.txt",1)cod1=txt1.readalltxt1.closesettxt2=fso.opentextfile("2.txt",1)cod2=txt2.readalltxt2.closeifinstr(cod2,cod1)>敏團0thenmsgbox"找到了字元嘩拿悄:"亂渣&cod1endif上源碼測試可用。同目錄下新建兩個文件「1.txt」、「2.txt」。「1.txt」寫進搜索關鍵詞「中國人」,「2.txt」寫入內容「我是中國人,你好。」。字元串比較不分什麼文,只要你雙引號裡面的東西完全一樣就相等。有一點點不同都不會相等。有任何問題追問吧。

❾ shell腳本里,如何刪除變數的最後一個字元

STR=123456abc
FINAL=`echo
${STR:
-1}`
或者
FINAL=${STR:
-1}
都可以讓FINAL獲得c這個最後一返搏含個字元
Linux
的字元串截取很有用。有八種方法。
假設有變數
var=http://www.aaa.com/123.htm.
1.
#
號截取,刪除左邊字元,保留右邊字元。代碼如下:
echo
${var#*//}
其中
var
是變數名,#
號是運算符,*//
表示從左漏笑邊開始刪除第一個
//
號及左邊的所有字元
即刪除
http://
結果是
:www.aaa.com/123.htm
2.
##
號截取,刪除左邊字元,保留右邊字元。代碼如下:
echo
${var##*/}
##*/
表示從左邊開始刪除最後(最右邊)一個
/
號及左邊的所有字元
即刪除
http://www.aaa.com/
結果是
123.htm
3.
%號截取,刪除右邊字元,保留左邊字元代碼如下:
echo
${var%/*}
%/*
表示從右邊開始,刪除第一個
/
號及右邊的字元
結果是:http://www.aaa.com
4.
%%
號截取,刪除右邊字元,保留左邊字元代碼如下:
echo
${var%%/*}
%%/*
表示從右邊開始,刪除最後(最左邊)一個
/
號及右邊的字元
結果是:http:
5.
從左邊第幾個字元銀爛開始,及字元的個數代碼如下:
echo
${var:0:5}
其中的
0
表示左邊第一個字元開始,5
表示字元的總個數。
結果是:http:
6.
從左邊第幾個字元開始,一直到結束。代碼如下:
echo
${var:7}
其中的
7
表示左邊第8個字元開始,一直到結束。
結果是
:www.aaa.com/123.htm
7.
從右邊第幾個字元開始,及字元的個數。代碼如下:
echo
${var:0-7:3}
其中的
0-7
表示右邊算起第七個字元開始,3
表示字元的個數。
結果是:123
8.
從右邊第幾個字元開始,一直到結束。
代碼如下:
echo
${var:0-7}
表示從右邊第七個字元開始,一直到結束。
結果是:123.htm

❿ shell腳本中怎樣對特殊字元進行處理 一串密碼在加密前對密碼中的!@#$%等特殊字元進行處理(加上『』)。

用sed正則匹配全局替換:

echo'Aa123!@#$'|sed"s/[^0-9a-zA-Z]/'&'/g"

這樣就把不是字母或數字的其他字元都加上單引號啦

當然,如果原輸入中不存在特殊字元,就還是原樣輸出,不會做任何改變。