пакетные файлы используют переменные со знаком% или excalm - PullRequest
0 голосов
/ 10 июня 2019

Одна строка с 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 Ответ

2 голосов
/ 10 июня 2019

Вот пример для вас, который использует с оператором 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 - файлы, (в концестрока 5) , вы, очевидно, изменили бы это Echo(%%A по мере необходимости.Последняя строка Pause включена только для того, чтобы вы могли прочитать вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...