命令变量输出

时间:2016-12-02 01:41:18

标签: html batch-file variables output

基本上,我正在处理一些代码,处理创建文本文件,然后逐行读取文本文件,并将每行转换为变量,然后在其他文本中回显以使变量适合html代码,稍后将在网站中使用。这是我的代码:

    @echo off
    set file=file
    cd %cd%
    for /d %%b in (*) do dir /ad /on /s /b "%%b" >> get_dirs.txt
    for /F "tokens=*" %%A in (get_dirs.txt) do ( 
    echo %%A > tmpfile.txt
    set /p t= < tmpfile.txt
    pause
    echo ^<a href="%file%:///%t%"^>%t%^</a^>
    )
    pause

忽略他们用于以前调试的暂停。我的主要问题是我的命令提示符输出<a href="file:///"></a> 这是我想要接受我的变量%t%没有与其余的html代码回应。我似乎无法弄清楚它有什么问题。谢谢。

1 个答案:

答案 0 :(得分:0)

标准delayed expansion问题。搜索SO有关setlocal delayedexpansion

的数百篇文章

您的代码写得更好

for /F "tokens=*" %%A in (get_dirs.txt) do ( 
 echo ^<a href="%file%:///%%A"^>%%A^</a^>
)

如果由于您没有透露的原因,您实际上想要t中的变量,那么

for /F "tokens=*" %%A in (get_dirs.txt) do ( 
 set "t=%%A"
 echo ^<a href="%file%:///%%A"^>%%A^</a^>
)

会这样做,但你需要使用delayedexpansion或子程序来使用分配给t的动态值。