这是我目前使用FOR循环获得的:
FOR /R "ProgramFolder" %%P in (*) do (
echo %%P
)
C:\Folder\Folder2\ProgramFolder\Managed\bolt.dll
C:\Folder\Folder2\ProgramFolder\Resources\fmodstudio.dll
C:\Folder\Folder2\ProgramFolder\Plugins\dll\DynamicWaterNativeWrapper.dll
如何获得这样的照片?
Managed\bolt.dll
Resources\fmodstudio.dll
Plugins\dll\DynamicWaterNativeWrapper.dll
答案 0 :(得分:2)
已编辑
@echo off
setlocal enableextensions disabledelayedexpansion
pushd c:\somewhere\ProgramFolder
for /f "tokens=1,* delims=\" %%a in (
'xcopy . "%temp%" /l /s'
) do if not "%%b"=="" echo(%%b
popd
此代码背后的基本思想是使用xcopy
命令不复制,而是检索应使用相对路径处理的文件的列表(/l
)。要使其正常工作,必须先将当前活动目录更改为所需的目录(pushd
)并使用对当前文件夹的相对引用(.
)
具有此配置的xcopy
命令的输出将采用
.\folder\folder\file.ext
要删除前缀点和反斜杠,for /f
配置为使用斜杠作为分隔符,并在第一个反斜杠之前检索第一个标记(点),并将第二个标记的第二个标记作为第二个标记,是,相对路径
由于xcopy
命令输出包含一个包含文件总数的附加行,并且此行将在脚本的输出中生成一个附加的空行,因此包含了一个附加的if
弃掉这条线。