说起无法维护的代码,相信朋友们有很多的想法,比如说没有注释、屎一样的逻辑、通篇重复代码
但是下面这个方法一定是最彻底最让你绝望的。
方法
朋友们一定会对变量的命名下很多心思,如果不认真对待变量名,后果是致命的。 下面是把一个现有的ps1文件,简单的转换成作死代码。
1
2
3
4
5
6
7
8
9
10
11
12
$gcfile = Get-Content "C:\x\azaa.ps1"
$xyz = ($gcfile -match "^\$.*=?" | ForEach-Object { $_.split(' |%|+|=')[0] } | Select-Object -Unique )
$xyz | Sort-Object -Property length -Descending
$字母小写 = 0..25 | ForEach-Object { [char][int](0x0061 + (0x01 * $_)) }
$日文 = 0..50 | ForEach-Object { [char][int](0x306e + (0x01 * $_)) }
$字库=$日文
0..$($xyz.count - 1) | ForEach-Object {
$改造变量名 = "$"
1..8 | ForEach-Object { $改造变量名 += Get-Random $字库 }
$gcfile = $gcfile.replace($xyz[$_], $改造变量名)
}
$gcfile
我们来看看原文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$postParams = @{"Ocp-Apim-Subscription-Key" = "$subscriptionKey" }
$comments = Get-Content $NewFolder$fileNewname".comments.txt" -Encoding utf8
$body = $comments | % { $_ | Select-Object @{name = 'text'; e = { $_.split(',')[-1].replace('#', '') } } } | ConvertTo-Json
$languages|%{
$lanx=$_
if ($i -eq $commentscount) {
$info3.Add($commentsnew[$y].split(',')[1]) | Out-Null
$y++
}
else {
$info3.Add($orginfile[$i]) | Out-Null
}
}
$info3 | Set-Content $NewFolder$fileNewname"."$lanx".ps1" -Force
}
加工后的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$みぶをわやべ゙ = @{"Ocp-Apim-Subscription-Key" = "$るゐを゙ぱゕゕの" }
$んゃゅるぽらゃほ = Get-Content $りぽわめるれ$めゆびわゃふみぱ".comments.txt" -Encoding utf8
$ろゑらぴぶゎやひ = $んゃゅるぽらゃほ | % { $_ | Select-Object @{name = 'text'; e = { $_.split(',')[-1].replace('#', '') } } } | ConvertTo-Json
$まみゎわゕゞぷゎ|%{
$むゐへやゅゎるゟ=$_
$ぽ゚ぷ゜ぱも゠ぽ = translatorMS -language $むゐへやゅゎるゟ -texts $ろゑらぴぶゎやひ
$んゃゅるぽらゃほnew = ConvertLanguage
$ひへぱび゙のゆ3.Add($んゃゅるぽらゃほnew[$ゐりへゟゃ゛ゎを].split(',')[1]) | Out-Null
$ゐりへゟゃ゛ゎを++
}
else {
$ひへぱび゙のゆ3.Add($びほゎばべゕび゙[$i]) | Out-Null
}
}
$ひへぱび゙のゆ3 | Set-Content $りぽわめるれ$めゆびわゃふみぱ"."$むゐへやゅゎるゟ".ps1" -Force
}
当然这是随机的,所以每次输出都可以不一样,英韩俄印总有一款适合你
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ゃ゙ぼぷれゃぶも = @{"Ocp-Apim-Subscription-Key" = "$ょべゆら゠べゃみ" }
$ぽめ゚ゐをれまゔ = Get-Content $ゅぺんぴばひひゃ$ゃやをんびはぺ".comments.txt" -Encoding utf8
$ぶぶわやゔゑめ゜ = $ぽめ゚ゐをれまゔ | % { $_ | Select-Object @{name = 'text'; e = { $_.split(',')[-1].replace('#', '') } } } | Conver
tTo-Json
$ゆゐばみゃゐのの|%{
$ばゔをゔゝょゎら=$_
$ゖふぺゃゑまり = translatorMS -language $ばゔをゔゝょゎら -texts $ぶぶわやゔゑめ゜
else {
$やゝもわぱ゜ゃば3.Add($べみ゠ぷまゖょび[$i]) | Out-Null
}
}
$やゝもわぱ゜ゃば3 | Set-Content $ゅぺんぴばひひゃ$ゃやをんびはぺ"."$ばゔをゔゝょゎら".ps1" -Force
}