如何在Windows批处理中复制/重命名目录中的所有文件

问题描述 投票:0回答:1

我的问题与SOF类似,但想给新文件(用于复制)一个奇数。 它应该在 WINODWS 10 下的

cmd
shell 中工作。

在我的目录中

    a.txt
    b.txt
    c.txt

并且想将这些文件复制到

    _1.txt
    _3.txt
    _5.txt

我已经尝试过但没有成功:

@echo off                       
setlocal enableDelayedExpansion 
set COUNTER=-1                   
for %%F in (*.txt) do (         
      set /A C = %COUNTER% + 2      
      rem echo %C%                      
      copy %%F _%C%.txt             
      set COUNTER = %C%             
)                               
                                    

有人可以告诉我为什么这不起作用吗? %C% 始终为空。

batch-file cmd
1个回答
0
投票

首先,您的脚本中有一个拼写错误,只需尝试删除此行中等号周围的空格

set COUNTER = %C%
,最好在
%%F
_!C!.txt
周围添加双引号以正确处理带有空格的文件名,并且还将
%C%
更改为
!C!
以启用循环内的延迟扩展!

所以检查一下:

@echo off                       
setlocal enableDelayedExpansion 
set COUNTER=-1                   
for %%F in (*.txt) do (         
      set /A C=%COUNTER%+2      
      rem echo !C!                      
      copy "%%F" "_!C!.txt"             
      set COUNTER=!C!             
) 
© www.soinside.com 2019 - 2024. All rights reserved.