Pomoc w pętli for BATCH

0

Witam, chcę stworzyć plik bat który będzie drukował wybrany plik z katalogu oraz ilość kopii tego pliku.
Mam coś takiego:

@echo off

echo Program do drukowania etykiet
@echo off
echo Podaj nazwe pliku=
set /p nazwa=
echo Podaj ilosc kopii=
set /p ilosc=
for
rundll32 shimgvw.dll ImageView_PrintTo /pt C:\etykiety%nazwa%.txt "drukarka"

Jak zrobić tą pętlę aby właśnie po wskazaniu np. 10 wydrukowało ten plik 10 razy ?
I jeszcze chcialem bo wpisaniu ilosci kopii program zapytal czy chcesz dalej drukowac i jesli tak to pp zatwoerdzeniu program dzialal od nowa

1
@echo off
echo Program do drukowania etykiet
setlocal
:jmp_1
set /p nazwa=Podaj nazwe pliku=||set nazwa=default
set /p ilosc=Podaj ilosc kopii=||set ilosc=1

echo printing file [%nazwa%] [%ilosc%] times
for /L %%i in (1,1,%ilosc%) do (
  echo printing %%i time 
  rundll32 shimgvw.dll ImageView_PrintTo /pt "C:\etykiety\%nazwa%.txt" "drukarka"
)

choice /C TN /m "print another file"
goto jmp_%ERRORLEVEL%
:jmp_2
endlocal
0

SUPER !! Bardzo bardzo Ci dziękuję.
Mam jeszcze jedną prośbę, okazało się że są to pliki .txt dokładnie OpenDocument Dokument tekstowy a tym programem nie drukuje txt tylko jpg albo png. Można jakoś to przerobić żeby drukowało txt albo docx ?

0

podobno da się http://daniel4it.blogspot.com/2014/05/command-line-word-printing.html

WINWORD.EXE /q /n test.doc /mFilePrintDefault /mFileClose /mFileExit
0

czyli to: rundll32 shimgvw.dll ImageView_PrintTo /pt "C:\etykiety%nazwa%.txt" "drukarka"
mam usunac i wpisac dokladnie to co mi podales ? bo cos nie dziala :/

0

Okej takie cos dziala:
@echo off
echo Program do drukowania etykiet
setlocal
:jmp_1
set /p nazwa=Podaj nazwe pliku=||set nazwa=default
set /p ilosc=Podaj ilosc kopii=||set ilosc=1

echo printing file [%nazwa%] [%ilosc%] times
for /L %%i in (1,1,%ilosc%) do (
echo printing %%i time
RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "%drukarka%"
start /min notepad /P C:\etykiety%nazwa%.txt
)

choice /C TN /m "Czy chcesz drukowac dalej ?"
goto jmp_%ERRORLEVEL%
:jmp_2

To działa i drukuje z notatnika. Jakoś to można przerobić aby drukowało z openoffica ?

0

Witam, zrobiłem taki kod i program drukuje pliki odt tylko nie wiem dlaczego nie działa zapętlenie czyli np 2 kopie ale ciągle drukuje tylko 1 poradzicie coś?
Jeśli zamiast swrite wpiszę notepad to ilość kopii działa, tylko musi to działać na odt. Pomożecie ?

Poniżej program

@echo off
echo Program do drukowania etykiet
setlocal
:jmp_1
set /p nazwa=Podaj nazwe pliku=||set nazwa=default
set /p ilosc=Podaj ilosc kopii=||set ilosc=1

echo printing file [%nazwa%] [%ilosc%] times
for /L %%i in (1,1,%ilosc%) do (
echo printing %%i time
RUNDLL32 PRINTUI.DLL
start /min swriter -pt "idrukarka" "C:\etykiety%nazwa%.odt"
)

choice /C TN /m "Czy chcesz drukowac dalej ?"
goto jmp_%ERRORLEVEL%
:jmp_2

1 użytkowników online, w tym zalogowanych: 0, gości: 1