我收到了以下代码:
dir C:\Web.config /b /s > c:\test2\output.txt
for /F "tokens=*" %%a in (c:\test2\output.txt) DO copy "%%a" C:\test
和
@echo off
setlocal disableDelayedExpansion
set "src=C:\"
set "dst=C:\test2"
set "search=Web.config"
for /r "%src%" %%F in (*%search%*) do (
set "full=%%~fF"
set "name=%%~nxF"
setlocal ENABLEDELAYEDEXPANSION
SET "path=!full::=-!"
SET "path=!path:\=_!"
copy "!full!" "%dst%\!name:%search%= Web.config - Path !-!path! "
endlocal
)
pause
我的问题是使用第二个代码将文件复制到另一个位置,其中filename = path / date / time我要复制的某些文件的字符数要长。
我现在要做的是用第一个代码将路径位置放在文本文件中,在路径编号1之前直到无穷无尽。和我复制的文件上的相同数字,路径来自哪里。所以我可以在文本文件中看到它。
我希望我很清楚,希望你们能帮忙。
如果我不清楚,我一直在思考,我想要像:
复制文件:
filename是name1
filename是name2
filename是name3
.....
在文本文件中:
旧位置的路径以及复制文件所具有的相同名称或编号之后或之前的路径。
答案 0 :(得分:0)
@Kale你使用set path=
而我不确定它在enabledelayedexpansion中的反应...你不应该使用单词path
作为变量名,因为它已经是一个系统变量
即,打开一个dos框并运行echo %path%
,你会看到我的意思。
尝试将批量中使用path
替换为类似loc
的位置。