批处理文件使用带有%或exalm符号的变量

时间:2019-06-10 11:36:53

标签: batch-file variables

echo tezenden is true eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee一行  尽管变量%tezenden%设置为true,但未执行。

我尝试使用 " % !

echo OFF
set tezenden=false
rem zoek de 2de extensie (dus nt de .lnk) in recent map
for %%a in ("%AppData%\Microsoft\Windows\Recent\*.lnk") do for %%b in ("%%~na") do ( 
    echo %%a - is %%~xb
    if "%%~xb" == ".txt" (set tezenden=true
                echo variable is set sssssssssssssssssssssssss
    )           
    rem if "%%~xb" == ".pdf" (set tezenden=true)
    rem other conditions here (simulates OR)
    rem evaluate tezenden
    if "!tezenden!"=="true" (echo tezenden is true eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
        rem hier verzenden en dan deleten

    )   
)
rem if %tezenden%==true (echo tezenden is true)   %var% ok since outside block functions OK

pause

有什么主意吗?

1 个答案:

答案 0 :(得分:2)

这是一个的示例,它结合使用Like运算符,这可能相对较慢,但应正确解析快捷方式目标和输出扩展名为.odt.pdf.txt的现有目标。

@Echo Off
For /F Tokens^=6Delims^=^" %%A In ('WMIC Path Win32_ShortcutFile Where^
 "Extension='lnk' And Name Like '%AppData:\=\\%\\Microsoft\\Windows\\Recent\\%%'"^
 Get Target /Format:"MOF" 2^>Nul')Do For %%B In (odt pdf txt
)Do If /I "%%~xA"==".%%B" If Exist "%%A" Echo(%%A
Pause

当前代码只是Echo {es}(在行5的末尾),显然,您可以根据需要更改Echo(%%A。包括最后一行Pause只是为了您可以阅读输出。