目录中有很多文件,名称为
injector.cpython-33.pyo
PregnancyMegaMod.cpython-33.pyo
我需要从它们.cpython-33
片段剪切,即重命名文件后必须像
injector.pyo
PregnancyMegaMod.pyo
如何编写批处理文件或PowerShell脚本?
答案 0 :(得分:1)
解决方案是
Get-ChildItem -Filter "*.pyo" -Recurse | Rename-Item -NewName {$_.name -replace '.cpython-33','' }
答案 1 :(得分:1)
假设没有任何文件有额外的点(换句话说,没有像" a.b.cpython-33.pyo"这样的文件),那么你可以使用如下内容:
ren *.cpython-33.pyo" "??????????????????????????????????????????.pyo"
?
之前的最长名称必须与.cpython=33.pyo"
一样多jren "\.cpython-33\.pyo$" ".pyo" /i
。有关详细信息,请参阅How does the Windows RENAME command interpret wildcards?。
如果可能有其他点,那么您可以使用我的JREN.BAT utility - 一个混合JScript /批处理脚本,它使用正则表达式替换执行重命名操作。它是纯脚本,可以在XP以后的任何Windows机器上本机运行。
{{1}}
答案 2 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR %%a IN ("%sourcedir%\*.pyo") DO FOR %%b IN ("%%~na") DO IF /i "%%~xb"==".cpython-33" ECHO(REN "%%~fa" %%~nb.pyo"
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
为了测试目的,所需的REN命令仅为ECHO
。 在您确认命令正确后,将ECHO(REN
更改为REN
以实际重命名文件。
显然,该方法的关键是for %%a
行。
对于与所选目录中的掩码匹配的每个文件,获取名称部分,并使用该名称部分,提取" name"部分。如果"扩展" part是期望的字符串,然后构建重命名命令。