指令变量输出(Command Variable Outputs)

2019-09-27 07:15发布

基本上,我工作的一些代码,处理创建一个文本文件,然后再逐行读取文本文件中的行,并打开每一行到一个变量,然后将其他文本中回荡,使变量嵌入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其余码。 我似乎无法弄清楚什么是错的。 谢谢。

Answer 1:

标准delayed expansion问题。 所以搜索数百篇左右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^>
)

能做到这一点,但你syill需要或者使用delayedexpansion或子程序使用分配到的动态值t



文章来源: Command Variable Outputs