本帖最后由 Five66 于 2024-11-4 13:58 编辑
保存为ansi编码的bat然后运行
假设base64编码的数据都有填充- @{}#? 2>nul&pause&powershell -c "type -literalpath '%~f0'|out-string|iex"&pause&exit/b
- '';gc -Encoding utf8 'list.txt' |foreach{
- "`n开始处理"
- $m=[regex]::match($_,'(\+@#@\+)+')
-
- if($m.success){
- $fname=$_.substring(0,$m.index)
- $fdata=$_.substring($m.index+$m.length)
- }else{
- $fname=$_
- $fdata=""
- }
-
- if(($fname -ceq "") -and ($fdata -ceq "")){
- echo "这一行是空行"
- }else{
- if(($fname -ceq '') -and ($m.length -gt 5)){$fname='+@#@+'}
- if($fname -ceq ''){
- echo '空白的文件名 , 开始添加'
- $fname='□'
- }
- if($fname.length -gt 100){
- echo '文件名太长 , 开始截取'
- $fname=$fname.substring(0,100)
- }
- $fname=$fname.split([io.path]::GetInvalidFileNameChars()) -join '□'
- $fname='+@#@+'+$fname
-
- if(test-path -LiteralPath ($pwd.path+"\"+$fname)){
- echo '存在同名文件 , 开始调整'
- }
- $i=$true;$j=1;$k="";while($i){
- if(test-path -LiteralPath ($pwd.path+"\$k"+$fname)){
- $j++
- $k="[$j]"
- }else{$i=$false}
- }
-
- if($fdata -ceq ""){
- echo ("空的数据流`n将输出到空文件`n"+"$k"+$fname)
- [io.file]::WriteAllText($pwd.path+"\$k"+$fname,"")
- }else{
- echo ("将输出到文件`n"+"$k"+$fname)
- [io.file]::WriteAllBytes($pwd.path+"\$k"+$fname,[convert]::FromBase64String($fdata))
- }
-
- }
- $null
- }
复制代码
|