我有一堆sql文件,我想重命名它们,因为它们在文件的开头具有模式名称,如下所示:
SCHEMA.TABLE.sql我想将其重命名为:
TABLE.sql不幸的是,当我试图在我的工作笔记本电脑上做到这一点时,我无法下载任何第三方软件,比如批量重命名实用程序,所以我尝试使用CMD来完成这项工作。
我尝试了以下几点:
REN SCHEMA.*.sql *.sql这看起来像是找到了一个匹配项,但没有任何变化。所以不确定我需要改变什么,所以如果有任何关于我哪里出错的建议,我将不胜感激。
发布于 2020-09-22 19:22:31
ren command解释目标模式*.sql中的*,以便它与直到最后一个.的所有源字符匹配,这意味着它与样本的SCHEMA.TABLE部分匹配。因此,目标名称等于源名称。
请参考这篇关于超级用户的文章:How does the Windows RENAME command interpret wildcards?
要从文件名中删除SCHEMA.部件,需要使用for /F loop
for /F "eol=| tokens=1* delims=." %I in ('dir /B /A:-D-H-S "*.*.sql"') do ren "%I.%J" "%J"在存在多个.的情况下,例如在SCHEMA..TABLE.sql中,此操作将失败。
当你想在一个%**-signs**中使用代码的时候,不要忘了双倍的 batch-file!
发布于 2020-09-22 19:22:12
1.使用powershell脚本可以很容易地完成此操作。复制以下脚本,将$path编辑到文件所在的路径。
$path = 'D:\MyFolder\My docs\testdelete'
$pathObject = get-childitem -path $path | where-object {$_.Psiscontainer -eq $false}
foreach($file in $pathObject)
{
$fileNameArray = $file.Name.Split(".")
Rename-Item -Path $file.FullName -NewName ($fileNameArray[1]+".sql")
}2.接下来,将此脚本保存在一个名为testrename.ps1的文件中。打开cmd,将目录切换到保存testren.ps1文件的位置,并进一步运行以下命令:
powershell -file "testren.ps1"其中$path是文件所在的路径。$pathObject将获取上述位置的所有文件。此外,我们迭代每个文件,拆分名称以获得'schema‘之后的内容,并进一步重命名它。如果cmd不是一个限制,那么第一个脚本也可以通过在windows上打开powershell窗口直接运行,在修改路径后复制粘贴脚本,然后按Enter键。在这种情况下,不需要执行步骤2。
https://stackoverflow.com/questions/64008138
复制相似问题