重命名文件以匹配另一个文件夹中的文件名

时间:2016-01-06 05:19:30

标签: powershell

我有2个目录。

D:\test\get\f

D:\test\set\f

get文件夹和set文件夹中,文件数量相等。 set中的所有文件都是相同的(这是一个重复多次的常见图像文件,以匹配set文件夹中的文件数)。

我的问题是,如何重命名set文件夹中与get文件夹相同的所有文件?

e.g:

获取文件夹

apple.jpg
mango.jpg
lychee.jpg

设置文件夹

123.jpg
12!.jpg
asdasd.jpg

获取文件夹

apple.jpg
mango.jpg
lychee.jpg

设置文件夹

apple.jpg
mango.jpg
lychee.jpg

1 个答案:

答案 0 :(得分:2)

一个简单的例子,它是未经优化的,并假定为最好的情况。它显示了迭代路径中的文件,获取文件名和重命名文件的基本步骤。

SELECT 
CASE WHEN fullname LIKE '%, %' THEN SUBSTRING(fullname, 1, CHARINDEX(', ', fullname)) ELSE fullname END AS lname,
CASE 
WHEN fullname LIKE '%, % %.' THEN SUBSTRING(fullname, CHARINDEX(', ', fullname)+2, LEN(fullname)-CHARINDEX(' ', REVERSE(fullname)) - CHARINDEX(', ', fullname)-1) 
WHEN fullname LIKE '%, %' THEN SUBSTRING(fullname, CHARINDEX(', ', fullname)+2, LEN(fullname)- CHARINDEX(', ', fullname)-1) 
END AS fname,
CASE WHEN fullname LIKE '%, % %.' THEN SUBSTRING(fullname, LEN(fullname)-CHARINDEX(' ', REVERSE(fullname)) + 2, 1000) END AS mname
FROM tblPerson