Sql Server中,檔案批量重新命名

來源:互聯網
上載者:User
--1. 建立自訂函數:從最後一個特定字元開始截取字串
create function fn_GetLastCharIndex(@Chars varchar(1000),@Char varchar(10))
returns varchar(1000)
begin
    declare @i int
    set @i=CharIndex(@Char,@Chars)
    while(@i>0)
    begin
        set @Chars=Substring(@Chars,@i+1,len(@Chars))
        set @i=CharIndex(@Char,@Chars)
    end
    
    return @Chars
end

--2. 擷取檔案名稱列表
if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#temp'))
drop table #temp
create table #temp(filenames varchar(1000))
Insert into #temp(filenames)
Exec master..xp_cmdshell 'dir F:\灌籃高手-全國大賽全彩版'

--3. 重新命名
declare @FileName varchar(1000),
    @NewFileName varchar(1000),
    @s varchar(1000)
declare cur_1 cursor for
select dbo.fn_GetLastCharIndex(filenames,' ') FileName from #temp where Right(filenames,4) in ('.jpg') and filenames like '%slamdunk%' order by 1
open cur_1
fetch cur_1 into @FileName
while(@@fetch_status=0)
begin
    set @NewFileName = Replace(@FileName,dbo.fn_GetLastCharIndex(@FileName,'-'),Right('00'+dbo.fn_GetLastCharIndex(@FileName,'-'),7))
    set @s='ren F:\灌籃高手-全國大賽全彩版\' + @FileName + ' ' + @NewFileName    
    Exec master..xp_cmdshell @s,no_output
fetch cur_1 into @FileName
end
deallocate cur_1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.