Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 9 sur 9
Aller à la page: <  1, 2, 3, 4, 5, 6, 7, 8, 9
Télécharger, convertir et renommer
Auteur Message
Répondre en citant
Message Télécharger, convertir et renommer 
Revue du message précédent :

Problème résolu....

Code:
ren "!name!" "!name:US=U.S.!"


pas besoin d'étoile

j'ai cherché trop compliqué
j'ai oublié que le code c'est tout con
faut faire simple

Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Télécharger, convertir et renommer 
Bonsoir

Bon je tente encore ma chance.
Dans mon fichier url, est ce que je peux faire un truc tout simple qui me dit à coté de l'url le nom que je veux donner au fichier ?

Par exemple :
url;NomFichier

et le script en téléchargeant va nommer le fichier NomFichier

Merci par avance

Bon weekend



Répondre en citant
Message Télécharger, convertir et renommer 
Help please,

Donc je remet mon script
Code:
@echo off
Title Telechargement des fichiers
mode con cols=84 lines=22 & Color A
:: *************************************Partie téléchargement********************************************************

:: **************************************************************************************************************

:: Téléchargement des url
set "url_name=url.txt"
set "vbs_downloader_name=vbs_downloader_engine"
if not exist "%url_name%" echo error, "%url_name%" n'exist pas! & pause
call :gen_downloader
if not exist "%vbs_downloader_name%" echo error, "%vbs_downloader_name%" n'existe pas! & pause& goto :eof
for /f "usebackq tokens=*" %%i in ("%url_name%") do (
call :download_file "%%~i"
)
Del "%vbs_downloader_name%"
ping -n 3 127.0.0.1 >nul
goto Suite

:download_file
echo downloading "%~1"
cscript //nologo //e:vbscript "%vbs_downloader_name%" "/input:%~1" "/output:%~nx1"
if errorlevel 1 echo error
goto :eof

:gen_downloader
(
echo.function getFileName^(content^)
echo.  if content= "" then
echo.    getFileName= ""
echo.    exit function
echo.  end if
echo.  set regEx= CreateObject^("VbScript.Regexp"^)
echo.  regEx.Pattern= "filename=\x22([^\x22]+)\x22"
echo.  getFileName= ^(regEx.Execute^(content^)^)^(0^).SubMatches^(0^)
echo.end function
echo.
echo.function main^(^)
echo.  target_link= WScript.Arguments.Named^("input"^)
echo.  set XMLObject= CreateObject^("MSXML2.XMLHTTP"^)
echo.  XMLObject.open "GET", target_link, false
echo.  XMLObject.send^(^)
echo.  if XMLObject.status = 200 then
echo.    set ADOStream= CreateObject^("ADODB.Stream"^)
echo.    ADOStream.open
echo.    ADOStream.Type= 1' option_type_binary
echo.    ADOStream.Write XMLObject.ResponseBody
echo.    file_save_name= getFileName^(XMLObject.getResponseHeader^("Content-Disposition"^)^)
echo.    if file_save_name= "" then
echo.      file_save_name = WScript.Arguments.Named^("output"^)
echo.    end if
echo.    ADOStream.SaveToFile file_save_name, 2 'option_save_and_overwrite
echo.    errorlevel=Err.Number
echo.    AdoStream.Close
echo.  end if
echo.    main= errorlevel
echo.end function
echo.
echo.WSCript.Quit^(main^(^)^)
)>"%vbs_downloader_name%"
goto :eof

:: **************************************************************************************************************
: Suite
:: Téléchargement des url
set "url_name=url.txt"
set "vbs_downloader_name=vbs_downloader_engine"
if not exist "%url_name%" echo error, "%url_name%" n'exist pas! & pause
call :gen_downloader
if not exist "%vbs_downloader_name%" echo error, "%vbs_downloader_name%" n'exist pas! & pause& goto :eof
for /f "usebackq tokens=*" %%i in ("%url_name%") do call :download_file "%%~i"
Del "%vbs_downloader_name%"
ping -n 3 127.0.0.1 >nul
goto Conversion

:download_file
echo Downloading "%~1"
cscript //nologo //e:vbscript "%vbs_downloader_name%" "/input:%~1" "/output:%~nx1"
echo.
if errorlevel 1 echo error
goto :eof

:gen_downloader
(
echo.function getFileName^(content^)
echo.  if content= "" then
echo.    getFileName= ""
echo.    exit function
echo.  end if
echo.  set regEx= CreateObject^("VbScript.Regexp"^)
echo.  regEx.Pattern= "filename=\x22([^\x22]+)\x22"
echo.  getFileName= ^(regEx.Execute^(content^)^)^(0^).SubMatches^(0^)
echo.end function
echo.
echo.function main^(^)
echo.  target_link = WScript.Arguments.Named^("input"^)
echo.  target_link = Replace(target_link,"%2B","+"^)
echo.  set XMLObject= CreateObject^("MSXML2.XMLHTTP"^)
echo.  XMLObject.open "GET", target_link, false
echo.  XMLObject.send^(^)
echo.  if XMLObject.status = 200 then
echo.    set ADOStream= CreateObject^("ADODB.Stream"^)
echo.    ADOStream.open
echo.    ADOStream.Type= 1' option_type_binary
echo.    ADOStream.Write XMLObject.ResponseBody
echo.    file_save_name= getFileName^(XMLObject.getResponseHeader^("Content-Disposition"^)^)
echo.    if file_save_name= "" then
echo.      file_save_name = WScript.Arguments.Named^("output"^)
echo.    end if
echo.    ADOStream.SaveToFile file_save_name, 2 'option_save_and_overwrite
echo.    errorlevel=Err.Number
echo.    AdoStream.Close
echo.  end if
echo.    main= errorlevel
echo.end function
echo.
echo.WSCript.Quit^(main^(^)^)
)>"%vbs_downloader_name%"
goto :eof

:: **************************************Partie Conversion*******************************************************
:Conversion
(
echo Option Explicit
echo ^'http://msdn.microsoft.com/en-us/library/office/bb251061^(v^=office.12^).aspx
echo Const ppSaveAsPDF ^= 32
echo Dim oFSO ^' Public reference to FileSystemObject
echo Dim oPPT ^' Public reference to PowerPoint App
echo Call Main^(^)
echo ^'**************************************************************************
echo Sub Main^(^)
echo     Dim sInput
echo     If wscript.Arguments.Count ^<^ 1 Then
echo         Wscript.Echo "You need to specify input and output files."
echo         wscript.Quit
echo     End If
echo     ^' PowerPoint version must be 12 or later ^(PowerPoint 2007 or later^)
echo     Set oPPT ^= CreateObject^("PowerPoint.Application"^)
echo     If CDbl^(oPPT.Version^) ^< 12 Then
echo         Wscript.Echo "PowerPoint version must be 2007 or later^^!"
echo         oPPT.Visible ^= True
echo         oPPT.Quit
echo         Set oPPT ^= Nothing
echo         wscript.Quit
echo     End If
echo     ^' Store Input Argument and detect execute mode ^(single file / Folder batch mode^)
echo     sInput ^= wscript.Arguments^(0^)
echo     Set oFSO ^= CreateObject^("Scripting.FileSystemObject"^)
echo     If IsPptFile^(sInput^) Then
echo         PPT2PDF sInput
echo     ElseIf oFSO.FolderExists^(sInput^) Then
echo         Wscript.Echo "Batch Start: " ^& Now
echo         Wscript.Echo "Root Folder: " ^& sInput
echo         BatchPPT2PDF sInput
echo     Else
echo         Wscript.Echo """" ^& sInput ^& """ is not a PPT file or Folder^^!"
echo     End If
echo     ^' Close PowerPoint app if no other presentations are opened
echo     If oPPT.Presentations.Count ^= 0 Then oPPT.Quit
echo     Set oPPT ^= Nothing
echo     Set oFSO ^= Nothing
echo End Sub
echo ^'**************************************************************************
echo Private Sub BatchPPT2PDF^(sFDR^)
echo     Dim oFDR^, oFile
echo     Wscript.Echo String^(50^, Chr^(151^)^)
echo     Wscript.Echo "Processing Folder: " ^& sFDR
echo     For Each oFile In oFSO.GetFolder^(sFDR^).Files
echo         If IsPptFile^(oFile.Name^) Then
echo             PPT2PDF^(oFile^)
echo         End If
echo     Next
echo     For Each oFDR In oFSO.GetFolder^(sFDR^).SubFolders
echo         BatchPPT2PDF oFDR
echo     Next
echo End Sub
echo ^'**************************************************************************
echo Private Function IsPptFile^(sFile^)
echo     IsPptFile ^= ^(InStr^(1^, Right^(sFile^, InStrRev^(sFile^, "."^)^)^, "ppt"^) ^> 0^)
echo End Function
echo ^'**************************************************************************
echo Private Sub PPT2PDF^(sFile^)
echo     On Error Resume Next
echo     Dim sPDF^, oPres
echo     sPDF ^= Left^(sFile^,InstrRev^(sFile^,"."^)^) ^& "pdf"
echo     Set oPres ^= oPPT.Presentations.Open^(sFile^, True^, False^, False^) ^' Read Only^, No Title^, No Window
echo     Err.Clear
echo     oPres.SaveAs sPDF^, ppSaveAsPDF
echo     oPres.Close
echo     Set oPres ^= Nothing
echo     If Err.Number ^= 0 Then
echo         Wscript.Echo vbCrLf ^& "OK" ^& vbTab ^& sPDF
echo     Else
echo         Wscript.Echo vbCrLf ^& "X" ^& vbTab ^& sPDF ^& " \[ERR " ^& Err.Number ^& ": " ^& Err.Description ^& "\]"
echo         Err.Clear
echo     End If
echo End Sub
echo ^'**************************************************************************
)>"PPT2PDF.vbs"

setlocal enableDelayedExpansion

for %%F in (*.ppt) do (
   set "name=%%F"
:: ********************************************************************************************************************
:: ********************************************************************************************************************
:: **** ON MODIFIE LA LIGNE SUIVANTE POUR L'AJOUT DE LA DATE (on remplace la partie après le "=" et avant le .ppt) ****
:: ********************************************************************************************************************
:: ********************************************************************************************************************
   ren "!name!" "!name:.ppt=_072014.ppt!"
)
:: ********************************************************************************************************************
:: ********************************************************************************************************************
:: ********************************************************************************************************************

Title Conversion PPT vers PDF
echo Conversion PPT vers PDF
mode con cols=100 lines=30 & Color 9B
Set PPT2PDF=PPT2PDF.vbs
for %%A in (.) do (
cscript.exe //NoLogo %PPT2PDF% %%A
)

Del PPT2PDF.vbs
del /q "*."


J'aurai besoin de faire une règle tel que :
si dans le fichier url on a cette forme :
URL;NOM
alors on nomme le fichier de l'url avec le nom donné.
Sinon si on a juste
URL
on prend le nom normal

en gros se voilà ce que j'avais sur mon fichier de test :

Code:
@echo off

setlocal enableDelayedExpansion

Title Telechargement d^'une liste d^'URL listees dans un document .txt by Hackoo
mode con cols=84 lines=22 & Color A

Set Fichier=URL.txt
Set Source=%~dp0

for /F "tokens=1,2 delims=;" %%a in (%Fichier%) do (call:download "%%a" "%%b.ppt")

exit /b

:download
(echo src = "%~1"
echo Set v1 = CreateObject("MSXML2.XMLHTTP"^)
echo Set v2  = CreateObject("ADODB.Stream"^)
echo v1.open "GET", src, false
echo v1.send(^)
echo v2.open
echo v2.Type = 1
echo v2.Write v1.ResponseBody
echo v2.SaveToFile "%~2" ) >"%~dpn0.vbs"
cscript.exe "%~dpn0.vbs"
del "%~dpn0.vbs" >nul


Sauf que là je n'ai pas ça comme fichier download et que du coup si je ne met rien en nom ben j'ai rien...
Donc faudrai l'adapter au gros script mais je n'y parviens pas car de ce que j'ai pu tester faut modifier le vbscript et ça...

Merci bien à ceux qui pourront m'aider.



Répondre en citant
Message Télécharger, convertir et renommer 
Bonjour,

je reviens un peu sur mon batch, j'aurai aimé corriger un problème qui est la conversion.
La conversion se fait sur tous les fichiers, j'aurai aimé qu'elle ne se fasse que sur les fichiers qui ont été téléchargés et non tout le dossier et les sous dossiers.
Quand on appelle la conversion on a :
Code:
for %%A in (.) do (
cscript.exe //NoLogo %PPT2PDF% %%A
)


qu'est ce que je dois mettre à la place du . pour ne traiter que les fichiers téléchargés svp ?



Répondre en citant
Message Télécharger, convertir et renommer 
Celà dépend de ce qui différencie les fichiers téléchargés des autres ? Une extension est différente ? Le nom n'est pas le même ?

Veuillez donner plus de détails s'il vous plait.

Cdt,




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Télécharger, convertir et renommer 
la conversion se fait de ppt vers pdf

si par exemple j'ai le dossier x avec en sous dossier y
je télécharge mes fichiers dans x
je ne veux pas que la conversion des fichiers dans y se fasse si j'ai des ppt dedans

je sais pas si je suis claire

je vais résumer

le script dont on parle a 3 fonctions
télécharger
renommer
convertir

je veux que la conversion ne se fasse que sur les fichiers téléchargés, tout simplement
j'ai plein de petit buggs sur mon script
mais c'est le premier que je veux essayer de résoudre



Répondre en citant
Message Télécharger, convertir et renommer 
chasseur1044 a écrit:
Bonjour,
je reviens un peu sur mon batch, j'aurai aimé corriger un problème qui est la conversion.
La conversion se fait sur tous les fichiers, j'aurai aimé qu'elle ne se fasse que sur les fichiers qui ont été téléchargés et non tout le dossier et les sous dossiers.
Quand on appelle la conversion on a :
Code:
for %%A in (.) do (
cscript.exe //NoLogo %PPT2PDF% %%A
)

qu'est ce que je dois mettre à la place du . pour ne traiter que les fichiers téléchargés svp ?

Salut Wink
Essayez avec ceci :

Code:
for %%A in (*.ppt) do (
cscript.exe //NoLogo %PPT2PDF% %%A
)





______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message Télécharger, convertir et renommer 
salut hackoo

je t'avour que je ne comprend pas
le script doit avoir un bugg
car ça ne convertit plus du tout...

alors que l'on change juste la "condition"



Répondre en citant
Message Télécharger, convertir et renommer 
Ca en m'étonne pas ^^ Le '*' ne fonctionne plus très bien, voir plus du tout... d'après ce que j'ai pu voir pour mon AdminTool... ^^




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Télécharger, convertir et renommer 
Je ne pense pas que se soit le problème sachant qu'au dessus il fonctionne très bien (renommage par exemple)

je ne comprend pas trop pourquoi le changement d'hackoo ne fonctionne pas, je l'avais également essayé avant sans succès c'est pour ça que je suis revenu poser la question
dans le doute j'ai refait le test et ça ne fonctionne toujours pas...



Message Télécharger, convertir et renommer 


Montrer les messages depuis:
Répondre au sujet Page 9 sur 9
Aller à la page: <  1, 2, 3, 4, 5, 6, 7, 8, 9
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch