2015-11-23 1 views
0

Mes fichiers sont:Comment créer des fichiers par2 multipar ligne de commande?

/aaaaa/11111.rar 
/bbbbb/22222.rar 
/cccccc/33333.rar 
/ddddd/44444.rar 

Je veux créer des fichiers par ...

/aaaaaa/11111.par2 
/bbbbbb/22222.par2 
/ccccccc/33333.par2 
/dddddd/44444.par2 

Comment puis-je changer le nom par?

J'ai essayé ce code:

@ECHO OFF 
REM this command script requires Windows 2000/XP 
SETLOCAL 

SET par2_path="path of par2j.exe" 

:GetFilePath 
SET target_folder=%1 

REM check input path 
IF "%~1"=="" GOTO End 
IF NOT EXIST "%~1" GOTO NextFile 
IF NOT "%~z1"=="0" GOTO NextFile 

REM invoke PAR2 client 
ECHO create PAR files for %1 
%par2_path% c /sm2048 /rr20 /rd1 /rf3 "%~1\%~n1.par2" * 

IF ERRORLEVEL 1 GOTO End 

:NextFile 
SHIFT 
GOTO GetFilePath 

:End 
ENDLOCAL 

Et ça marche, mais il y a un problème: fichiers de pair rebaptisés nom dossier ...

+1

Il n'est pas clair pour votre description ou votre code quel est exactement le problème. Cependant ''% ~ 1 \% ~ n1.par2 "' est ce qui définit le nom du fichier de sortie. – wOxxOm

+0

merci mais je sais mais comment vérifier% ~ 2 fichier? – JesWhite

+1

Comment exécutez-vous ce fichier batch? Afficher un exemple de ligne de commande exacte. – wOxxOm

Répondre

1

POSÉES il y a 1 an, mais pas encore de réponse. Vous devez écrire plus que simplement %par2_path% c /sm2048 /rr20 /rd1 /rf3 "%~1\%~n1.par2" *. Remplacez votre ligne avec les lignes suivantes à la place:

FOR /F "delims=" %%d IN ('DIR /AD /B "%1"') DO (
    FOR /F "delims=" %%f IN ('DIR /A-D /B "%1\%%d"') DO (
     %par2_path% c /sm2048 /rr20 /rd1 /rf3 "%1\%%d\%%~nf.par2" * 
    ) 
) 

Disons que vous avez la structure suivante:

Script.bat 
dir001 
- aaaaa 
    - file.001 
    - name.xyz 
- bbbbb 
    - test.abc 
- ccccc 
    - file.rar 

Les lignes ci-dessus auront tous les dossiers dans votre dossier donné (drag & drop) et liste tous les fichiers dans ces dossiers. Pour ces fichiers, créez des fichiers par2 dans le dossier particulier.

Déposez le dossier "dir001" sur votre Script.bat. La sortie sera quelque chose comme:

Script.bat 
dir001 
- aaaaa 
    - file.001 
    - file.par2 
    - name.xyz 
    - name.par2 
- bbbbb 
    - test.abc 
    - test.par2 
- ccccc 
    - file.rar 
    - file.par2 

Mais si vous avez un autre fichier nommé par ex. "file.txt" dans le dossier "dir001 \ ccccc", le fichier ne recevra aucun fichier par2. Si vous le souhaitez, modifiez *%%~nf.par2* to *%%f.par2* dans la deuxième boucle FOR et vos fichiers par2 utiliseront le nom complet du fichier (y compris l'extension).