我有一个包含许多子文件夹的文件夹,这些子文件夹还有其他子文件夹。每个文件夹都有许多文件。
我想通过添加一些后缀来重命名所有文件
表示例如:
原文:FileName1.ext
决赛:Suf_FileName1.ext
要执行此功能,请在线找到此命令
O(K)
但这会替换原始文件名中的初始字符
像
原文:FileName1.ext
决赛:Suf_Name.ext
(请注意它已删除了初始文件名中的初始字符)
请在上述命令中建议更改/修改, 或执行该功能的其他命令。
先谢谢。
答案 0 :(得分:1)
使用SET @sqlCommand =
'bcp "EXEC ' +@db + '.dbo.GetXmlDataKund" queryout "' + @filePath + @fileName + ' " -T -c -C65001 -C'
EXEC master..xp_cmdshell @sqlCommand
命令迭代一组文件时,for
可替换参数(样本中的for
)包含对文件的引用。
在%x
子句中包含的命令中使用%x
时,此参数将替换为正在处理的文件的信息,默认情况下为文件的名称和扩展名(使用简单时) do
)或具有完整路径的文件(使用递归for
时),但您可以决定并更改要使用的信息。可替换参数允许使用一些修饰符(如果执行for /R
,则可以看到完整列表)
在您的情况下,对于您的重命名掩码,您需要引用文件的名称和扩展名(我已将for /?
更改为%x
,因此语法更清晰)
%F
您的命令可能类似于
%~nxF
^^^^.... replaceable parameter
||+..... extension of the file referenced
|+...... name of the file referenced
+....... operator for modifier usage
for /R %F in (*) do echo ren "%F" "Suf_%~nxF"
只是一种调试习惯。在更改任何内容之前,首先显示以控制将要执行的命令。如果输出似乎正确,那么我们只需删除echo
并再次运行命令。 请记住,如果要在批处理文件中使用该命令,则需要通过将它们加倍来转义echo
可替换参数中的百分号。在批处理文件中,上一个命令将是
for