我有问题。我不知道我是不是做了一些愚蠢的事情,因为我在大多数情况下都在使用bash。 Windows批处理完全不同。
我想为mkvmerge生成参数,所以首先我将dir命令转储到txt文件,然后我为mkvmerge语法生成命令,然后再将其转储到txt文件。
setlocal enableextensions enabledelayedexpansion
dir /b /a-d fonts > temp_fn.txt
copy /y NUL temp_fn2.txt >NUL
set i=0
for /F %%a in (temp_fn.txt) do (
set /A i+=1
set array[!i!]=%%a
)
set n=%i%
for /L %%i in (1,1,%n%) do <NUL set /p= --attachment-name !array[%%i]! --attachment-mime-type application/x-truetype-font --attach-file ^^^^"L:\fonts\!array[%%i]!^^" >> temp_fn2.txt
pause
不幸的是,当我尝试将该文件导入变量然后使用echo进行测试时,将删除一半参数(或更确切地说是字符)(从最后开始,更确切地说 - 在第2024个字符之后)。
set /p args=<temp_fn2.txt
echo %args%
批量变量是否有限?或者也许有更好的方法来实现它?