我的问题与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% 始终为空。
首先,您的脚本中有一个拼写错误,只需尝试删除此行中等号周围的空格
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!
)