批处理 - 在不扩展文件内的变量的情况下回显文件

时间:2017-05-23 10:14:22

标签: windows file batch-file variables for-loop

这可能与this question完全相反。

无论如何,我有一个包含这样内容的批处理文件:

a.bat

@echo %random%

我试图通过另一个批处理文件读取 a.bat

for /f "delims=" %%p in ('dir *.bat') do (
    rem loop through files
    for /f "delims=" %%q in ('type %%~p') do echo %%q 
) 2>nul

它输出:

  

@echo (random number)

如何输出@echo %random%?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您的代码在这里工作(赢8)。仅将/B开关添加到dir命令。

for /f "delims=" %%p in ('dir /B a.bat') do (
    rem loop through files
    for /f "delims=" %%q in ('type %%~p') do echo %%q 
) 2>nul

但你也可以试试

SetLocal DisableDelayedExpansion
for /f "delims=" %%p in ('dir /B a.bat') do (
  for /F "tokens=1,* delims=[]" %%1 in ('"type "%%~p"|find /N /V """') do echo/%%2
)
EndLocal

在我的电脑中,都提供了@echo %ramdon%