我正在尝试创建一个循环以传输文件并重命名目标路径,这是我到目前为止所拥有的:
@echo off
setlocal enabledelayedexpansion
for %%x in (
list of files
) do (
set DST=%%%X:20180101=!.!%
@echo Copying...
@echo From: %%X
@echo To: %DST%
REM COPY %%X !DST! /V /Y
)
问题在于目的地没有改变,它停留在循环中的第一个路径和文件中,如何确保其正确?
以上循环的目的是将路径替换为。可以,但是路径不会随源改变。
答案 0 :(得分:1)
我正在假设这样的事情?
@echo off
setlocal enabledelayedexpansion
for %%i in (*.txt) do (
set dst=%%~fi
set dst=!dst:20180101=.!
echo !dst!
@echo Copying...
@echo From: %%~fi
@echo To: !DST!
REM COPY %%~fi !DST! /V /Y
)
请注意,我们如何将延迟扩展与!
而非%
一起使用
有关延迟扩展的更多信息,请参见set /?
和setlocal /?