Batch file 如何用sp覆盖名称从nl_uu开始的文件_
我有文件夹A和B。文件夹A有类似于:A.mp3和A.txt的文件,文件夹B有:B.mp3和B.txt。我想在这里做的是将文件夹A的内容复制并重命名为B,以便可以覆盖文件 下面是一个示例代码,说明如何在文件夹B中覆盖并保持相同的文件名:Batch file 如何用sp覆盖名称从nl_uu开始的文件_,batch-file,rename,xcopy,Batch File,Rename,Xcopy,我有文件夹A和B。文件夹A有类似于:A.mp3和A.txt的文件,文件夹B有:B.mp3和B.txt。我想在这里做的是将文件夹A的内容复制并重命名为B,以便可以覆盖文件 下面是一个示例代码,说明如何在文件夹B中覆盖并保持相同的文件名: XCOPY /HECY A\a.txt B\b.txt 但我不想键入所有文件名来复制和覆盖文件夹B中的文件 任何帮助都将不胜感激。这应该行得通。它将所有A\nl.*文件复制到B\,将nl重命名为sp并覆盖文件 setlocal enabledelayedexpa
XCOPY /HECY A\a.txt B\b.txt
但我不想键入所有文件名来复制和覆盖文件夹B中的文件
任何帮助都将不胜感激。这应该行得通。它将所有
A\nl.*
文件复制到B\
,将nl
重命名为sp
并覆盖文件
setlocal enabledelayedexpansion
for %%a in (A\nl_*.*) do (
set file=%%~nxa
set file=!file:~2!
xcopy /hecyi "%%a" "B\sp!file!"
)
重命名一个或多个文件/目录 重命名[drive:][path][directoryname1 | filename1][directoryname2 | filename2] REN[drive:][path][directoryname1 | filename1][directoryname2 | filename2] 范例
将“normal sample.txt”重命名为“example sample.txt”您可以直接使用
xcopy/HECYI A\nl_*.*B\sp_*.
命令:
C:>dir A /b
nl_t.txt
nl_test.txt
nl_test.xyz
nl_testLarge.txt
C:>dir B /b
C:>xcopy A\nl_*.* B\sp_*.*
A\nl_t.txt
A\nl_test.txt
A\nl_test.xyz
A\nl_testLarge.txt
4 File(s) copied
C:>dir B /b
sp_t.txt
sp_test.txt
sp_test.xyz
sp_testLarge.txt
所以你想用
A\A.txt
覆盖B\B.txt
,并保留相同的名称?是的,这就是我想说的。:)您必须在问题描述中包含重要信息,例如:“我想用sp_uu覆盖名称从nl_u开始的文件”,否则答案是不可压缩的!你是否建议我必须阅读其他答案中的所有评论才能理解你的问题?好主意。。。我建议你无论如何都要这样做,即使问题已经解决了(是的,你说得对。谢谢你的评论。:)谢谢,但是我怎样才能用sp_test.txt覆盖nl_test.txt呢?我试图将“%%a”“B\B%%~xa”替换为“%%sp_u”“B\nl_%%~xa”。我还可以使用sp_u作为值的变量吗?我会把你的答案标记为正确,但请先帮我解决这个问题。对不起,我只是把你的例子看得有点过火了。只需将“B\B%%~xa”
替换为“B\%%~nxa”
,它就可以处理所有文件。嗨,巴厘岛,再次感谢你。但我想你还是没有抓住重点。多亏了你,我可以将文件复制到文件夹B,但我想用sp_uu覆盖名称从nl_u开始的文件。所以名称保持原样,但是文件的内容在从文件夹a复制到文件夹B后会发生变化。:)好的,所以所有nl_*文件都要复制到B,对吗?大概B有所有的sp_*文件,nl_u*文件应该重命名为sp_u并覆盖它们?哈哈:D不用担心。!档案:~2代码>从变量中去掉前2个字符,在本例中,变量是文件名,我们希望从中删除nl部分,以便稍后我可以将sp放在它的位置。!文件代码>位与%file%
(现在nl已被删除)类似,但它使用延迟扩展,因为它位于for循环中。如果您使用常规的%
,变量将保持不变,直到循环完成。我确实已经理解了这一点,但感谢您的帮助。:)天哪,我的意思是,这花了我太多时间去理解批处理的逻辑。我刚开始,希望你能理解。:)