半自动的参考一下- #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
- $bat='FirstLogon.cmd'
- $o=$bat+'.bat'
- $a=[io.file]::readallbytes((gi $bat))
- $gv={[System.Environment]::GetEnvironmentVariable($args[0])}
- $sv={[System.Environment]::SetEnvironmentVariable($args[0][0],$args[0][1])}
- $d=[System.Text.Encoding]::GetEncoding(936).getstring($a[4..$a.length])-split'\r?\n'|%{
- $b=[regex]::replace(
- $_,
- '%[^:%]+?:~[-\d]+,\d+%',
- {
- if($args[0].value -match '^%([^:]+):~([^,]+),(\d+)%$'){
- if([int]$matches[2] -lt 0){$matches[2]=[int]((&$gv $matches[1]).length)+[int]$matches[2]}
- (&$gv $matches[1]).substring($matches[2],$matches[3])
- }
- }
- )
- $b
- $c=$b -replace '(?<=[^\^])(&+)',"`n`$1" -replace '\^(?=[^\^])','' -replace '\^\^','^'
- [regex]::matches($c,'set\s+(.+?)=(.+)')|%{&$sv($_.groups[1],$_.groups[2])}
- }
- $d|sc $o
复制代码 |