我有以下文件夹结构:
C:\Database
C:\Database\Tables
C:\Database\Stored Procedures
C:\Database\Views
C:\Database\Functions
每个表格,存储过程,视图和功能文件夹中都会有大量文件格式如下:
在表格文件夹下:
dbo.Table1Name.Table.sql
dbo.Table2Name.Table.sql
mon.Table3Name.Table.sql
test.Table4Name.Table.sql
在存储过程文件夹下:
dbo.usp_StoredProcedure1Name.StoredProcedure.sql
dbo.usp_StoredProcedure2Name.StoredProcedure.sql
dbo.usp_StoredProcedure3Name.StoredProcedure.sql
mon.usp_StoredProcedure4Name.StoredProcedure.sql
mon.usp_StoredProcedure5Name.StoredProcedure.sql
同样适用于观看和功能。
Tables 文件夹下的文件将重命名为:
dbo.Table1Name.sql
dbo.Table2Name.sql
mon.Table3Name.sql
test.Table4Name.sql
存储过程文件夹下的文件名将为:
dbo.usp_StoredProcedure1Name.sql
dbo.usp_StoredProcedure2Name.sql
dbo.usp_StoredProcedure3Name.sql
mon.usp_StoredProcedure4Name.sql
mon.usp_StoredProcedure5Name.sql
理想情况下,我在数据库文件夹中有一个批处理文件,用于重命名删除 表 , StoredProcedure <的文件/ strong>, 查看 和 功能 ,从各自文件夹中的文件名称开始。
如果在批处理文件中无法轻松完成,我会尝试在PowerShell中找到一些东西。
感谢Alex K编辑我的原始帖子(我的第一篇文章)并感谢foxidrive为您的推荐和KnightWhoSayNi分享您的方式。
答案 0 :(得分:0)
在您更新之前
我写了小批量脚本。
离。
asd.first.second.txt -> asd.first.txt
aaa.first.second.txt -> aaa.first.txt
bbb.first.second.txt -> bbb.first.txt
ccc.first.second.txt -> ccc.first.txt
ddd.first.second.txt -> ddd.first.txt
重要提示:在包含文件的文件夹中创建批处理脚本
ECHO OFF
SETLOCAL EnableDelayedExpansion
CLS
SET temp_file=C:\temp\temp_string.txt
FOR /f "delims=" %%A IN ('DIR /B "%~dp0"') DO (
ECHO %%A
ECHO %%A > %temp_file%
FOR /F "tokens=1,2,3 delims=." %%I IN (%temp_file%) DO (
ECHO %%I %%J %%K
rename %%I.%%J.%%K.txt %%I.%%J.txt
)
)
DEL %temp_file%
答案 1 :(得分:0)
启动此功能,屏幕上会显示display the ren commands
如果是,则删除echo
并再次运行以执行重命名。
@echo off
for /f "delims=" %%a in ('dir "C:\Database\*.sql" /b /s /a-d ') do (
for /f "tokens=1,2 delims=." %%b in ("%%~nxa") do echo ren "%%a" "%%b.%%c%%~xa"
)
pause
答案 2 :(得分:0)
不需要批处理脚本。可以在命令行上使用简单的REN命令完成! : - )
for %F in (Tables "Stored Procedures" Views Functions) do @ren "C:\Database\%~F\*.*.*.sql" "????????????.??????????????????????????????.sql"
确保至少有?
与最长源文件名中的字符一样多。
如果在批处理脚本中使用该命令,则加倍百分比。
这是另一个使用两个REN命令的简单解决方案(批处理脚本):
@echo off
for %%F in (
Tables:Table
"Stored Procedures:StoredProcedure"
Views:View
Functions:Function
) do for /f "tokens=1,2 delims=:" %%A in ("%%~F") do (
ren "C:\Database\%A\*.*.*.sql" *.
ren "C:\Database\%A\*.*.%%B" *.sql
)
请参阅How does the Windows RENAME command interpret wildcards?以获取有关上述解决方案工作原理的帮助。