我有一台感染了勒索软件的服务器。我已经解密了大部分内容,但现在文件类型已更改或已重命名,我需要检查:
newsfeed.xml.BLACK_MAMBA_Files@QQ.COM.BLACK_MAMBA_Files@QQ
Google Chrome.lnk.BLACK_MAMBA_Files@QQ
我试过
ren *.BLACK_MAMBA_Files@QQ* *.
我在想这会重命名所有文件,删除额外的文本但保留原始文件扩展名。我收到的错误是
存在重复的文件名或找不到该文件。
我对命令提示符的使用经验非常有限,而且没有使用PowerShell的经验。如果有人可以告诉我应该怎么做这个或替代方案,我将不胜感激。
答案 0 :(得分:1)
这将重命名文件以删除任何形式的.BLACK_MAMBA_Files
后缀:
Get-ChildItem C:\folder -Recurse | Where-Object { $_.Name -like "*BLACK_MAMBA_Files*" } | Rename-Item -NewName { $_.Name -replace ".BLACK_MAMBA_Files.*",""} -WhatIf
注意:强>
我添加了-WhatIf
,因为我只使用您包含的两个示例对此进行了测试。我相信它会正常工作,但最好先测试一下。
如果包含此参数,您可以运行该命令,它只显示重命名命令的结果,但实际上并不完全重命名为真实。
当您确认重命名过程可以正常使用您的文件时,请从结尾删除-WhatIf
。
答案 1 :(得分:1)
编辑重写脚本以使用RegEX
如果多次附加扩展名,
经常运行此脚本以删除所有出现的事件。
PushD 'X:\folder\to\start'
$Pattern = '(\.COM)*\.BLACK_MAMBA_Files@QQ'
Get-ChildItem -Recurse -File -Filter "*BLACK_MAMBA*"|
Where Name -match $Pattern|
ForEach {
If (!(Test-Path ($_.FullName -replace $Pattern))) {
$_|Rename-Item -NewName {$_.Name -Replace $Pattern} -confirm
} Else {
"can't rename $($_.FullName) ´`r`nbecause $($_.FullName -Replace $Pattern) already present"
}
}
PopD
如果脚本正常,请删除重命名项末尾的-Confirm
。
答案 2 :(得分:0)
你可以尝试这个,但你应该先测试一下
Get-ChildItem -Path c:\PathtoDirectory -recurse |
Where {$_.FullName -Like "*.*BLACK*"} |
Foreach {Rename-item -Path $_.FullName -NewName $_.BaseName}
使用以下命令,您可以看到orignal文件名现在是基本名称,因此我们可以使用该属性重命名它们。
Get-Item -Path C:\PathtoFile | select *
您必须为扩展名为.com的文件运行两次命令。
答案 3 :(得分:0)
@ECHO OFF
SETLOCAL enabledelayedexpansion
SET "sourcedir=U:\sourcedir"
SET "outfile=U:\report.txt"
(
FOR /f "delims=" %%a IN (
'dir /b /s /a-d "%sourcedir%\*.BLACK_MAMBA_Files@QQ*" '
) DO (
SET "newname=%%a"
SET "newname=!newname:.BLACK_MAMBA_Files@QQ=?!"
FOR /f "delims=?" %%r IN ("!newname!") DO ECHO REN "%%a" "%%~nxr"
)
)>"%outfile%"
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
这个简单的批次应该让你走上正轨。我使用u:
ramdrive进行测试。
从您定义为sourcedir
的目录开始,仅执行文件名(无目录名)的目录列表,包括子目录。将找到的与掩码“ .BLACK_MAMBA_Files @ QQ ”匹配的每个名称分配给%%a
。
使用delayed expansion
提供的工具,将%%a
分配给newname
,然后用?
替换每个匹配的目标字符串,这是一个非法的文件名字符。< / p>
然后使用默认tokens=1
和delims=?
将结果名称的第一部分分配到newname
- 直到第一个分隔符(?
)到{ {1}}。
然后仅使用%%r
的名称和扩展部分进行重命名(因为这是%%r
唯一接受的部分)。
我选择通过括号括起整个嵌套ren
语句并将输出重定向到定义为ren
的文件来输出for
命令。如果这是outfile
文件,那么您应该检查它是否合理,然后将输出文件作为另一个批处理运行,如果它看起来合适。这也允许您保留已完成修改的记录。