我有这个文本文件:
NJ01_27Ground
nj01stripclub
others...
好的,现在我想在我刚写的这个批处理文件中设置它们的值而不是模型名称:
Set /p "r=Model name? >> "
if exist "F:\Map 4 animation\%r%.obj" (echo %r%>>Loaded.txt) else (echo %r%>>Unloaded.txt)
test.bat>>test.bat
我的意思是例如这将是第一行:
set r=NJ01_27Ground
if exist "F:\Map 4 animation\%r%.obj" (echo %r%>>Loaded.txt) else (echo %r%>>Unloaded.txt)
test.bat>>test.bat
答案 0 :(得分:0)
下面的批处理代码会创建一个名为ExistenceCheck.bat
的批处理文件。
@echo off
setlocal
set "OutputBatch=ExistenceCheck.bat"
>"%OutputBatch%" echo @echo off
>>"%OutputBatch%" echo del Loaded.txt Unloaded.txt 2^>nul
for /F "usebackq delims=" %%I in ("InputTextFile.txt") do (
>>"%OutputBatch%" echo if exist ^"F:\Map 4 animation\%%I.obj^" ^(echo %%I^>^>Loaded.txt^) else ^(echo %%I^>^>Unloaded.txt^)
)
endlocal
对于InputTextFile.txt
中的每个非空/空行,一行会附加到输出文件ExistenceCheck.bat
。
文件ExistenceCheck.bat
最后包含例如:
@echo off
del Loaded.txt Unloaded.txt 2>nul
if exist "F:\Map 4 animation\NJ01_27Ground.obj" (echo NJ01_27Ground>>Loaded.txt) else (echo NJ01_27Ground>>Unloaded.txt)
if exist "F:\Map 4 animation\nj01stripclub.obj" (echo nj01stripclub>>Loaded.txt) else (echo nj01stripclub>>Unloaded.txt)
我希望,这个批处理文件是你最终想要的。
Test.bat>>Test.bat
绝对不是个好主意。执行一个批处理文件,该文件最后将其输出附加到自身,也由命令处理器处理,这很容易导致语法错误或几乎无休止的批处理文件。