基本上,我正在处理一些代码,处理创建文本文件,然后逐行读取文本文件,并将每行转换为变量,然后在其他文本中回显以使变量适合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代码回应。我似乎无法弄清楚它有什么问题。谢谢。
答案 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
的动态值。