Мой скрипт не работает с подстановочными знаками (функция IF)! Log.txt — это список имен файлов, некоторые из них должны быть скопированы: (IF исключение==копия имени файла) остальные (иначе echo *.html)
for /f "usebackq delims=" %%a in (./Log.txt) do (
IF /i %excl1%==%%a set copy=1
IF /i %excl2%==%%a set copy=1
IF /i %excl3%==%%a set copy=1
IF defined copy (
echo "%source%\%%a"
echo "%savedir%\%%a"
copy "%source%\%%a" "%savedir%\%%a"
) else (
echo "<p><a href=%savedir%\%%a>%%a</a></p>" >> %htmlfile%)
set copy=
)
Идеи решения проблемы?
решение1
не меняя слишком много:
@echo off
set "dir=C:\your\directory\Log.txt"
set "htmlfile=C:\your\html\file.txt"
set "source=C:\your\source"
set "savedir=C:\your\saved"
set "excl1=firstexclusion"
set "excl2=secondexclusion"
set "excl3=thirdexclusion"
setlocal enabledelayedexpansion
for /f %%A in (%dir%) do (
set "file=%%A"
IF /i !file! == %excl1% (
set copy=1
echo "%source%\!file!"
echo "%savedir%\!file!"
echo "%source%\!file!" "%savedir%\!file!") ELSE (IF /i !file! == %excl2% (
set copy=1
echo "%source%\!file!"
echo "%savedir%\!file!"
echo "%source%\!file!" "%savedir%\!file!") ELSE (IF /i !file! == %excl3% (
set copy=1
echo "%source%\!file!"
echo "%savedir%\!file!"
echo "%source%\!file!" "%savedir%\!file!"
) ELSE (
echo "<p><a href=%savedir%\!file!>!file!</a></p>" >> %htmlfile%
)))
)
Сначала мы включим отложенное расширение, чтобы мы могли использовать его %%A
как переменную !file!
на протяжении всего цикла - затем это просто вопрос правильного форматирования IF
/ ELSE
. Надеюсь, это делает то, что вам нужно.