首先,我是一个初学者。我正在尝试一款游戏的最终脚本蝙蝠文件解决方案。为了不让您烦恼细节,让我告诉您我想做什么。
例:
\mods\images
,对象在路径中\mods\models
。list.txt
TTSmissing
文件夹中这是我的问题:
\mods\images\
,以测试其是否有效),所以我基本上想要的是:\Tabletop Simulator\Mods\
作为源路径,脚本也应查看所有子文件夹。list.txt
只有工作,当文件名也有自己的扩展。是否可以更改脚本,所以我不需要扩展名?因此它只会查找名称并复制文件?(例如:列表中的名称必须类似于:hello123.jpg
。仅当它不起作用时 hello123
。)@echo off
mkdir %USERPROFILE%\Desktop\TTSmissing
set src_folder=%USERPROFILE%\Documents\My Games\Tabletop Simulator\Mods\Images
set dst_folder=%USERPROFILE%\Desktop\TTSmissing
set file_list=%USERPROFILE%\Desktop\list.txt
for /f "tokens=*" %%i in (%file_list%) DO (
xcopy /S/E "%src_folder%\%%i" "%dst_folder%"
)
pause
@echo off
setlocal
set "src_folder=%USERPROFILE%\Documents\My Games\Tabletop Simulator\Mods"
set "dst_folder=%USERPROFILE%\Desktop\TTSmissing"
set "file_list=%USERPROFILE%\Desktop\list.txt"
set "ext_list=.gif .jpeg .jpg .mp4 .obj .pdf .png .webm"
if not exist "%dst_folder%" md "%dst_folder%"
for /d /r "%src_folder%\" %%A in (*) do (
pushd "%%~A" && (
for /f "usebackq delims=" %%B in ("%file_list%") do (
for %%C in (%ext_list%) do (
if exist "%%~B%%~C" (
echo copy /y "%%~B%%~C" "%dst_folder%\"
)
)
)
popd
)
)
您只想复制文件,因此copy
比容易使用xcopy
。该代码将回显该copy
命令,以测试它是否按预期工作。如果满意,请删除echo
复印件前面的,然后再次运行代码以执行实际的复印过程。
一个for /d /r
循环将递归迭代的子目录%src_folder%
。pushd
将当前目录更改为每个子目录,以便可以相对于源文件工作。
该for /f
循环将遍历每个行%file_list%
。简单for
循环将迭代每个%ext_list%
。如果当前的“ name.extension ”存在,它将被复制到%dst_folder%
。
如果您set
在脚本中对变量进行命名,通常最好使用setlocal
将定义的变量保持在脚本本地的位置。
要查看命令的帮助,请使用command /?
。这将适用于代码中使用的许多命令。
查看command /?
求助copy
,for
,if
,setlocal
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句