我的文件是:
/aaaaa/11111.rar
/bbbbb/22222.rar
/cccccc/33333.rar
/ddddd/44444.rar
我想为文件创建par。。。
/aaaaaa/11111.par2
/bbbbbb/22222.par2
/ccccccc/33333.par2
/dddddd/44444.par2
如何更改票面名称?
我试过这个代码:
@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
它有效,但存在一个问题:par文件已重命名文件夹名称。。。
一年前被问到,但还没有答案。
你必须写的不仅仅是%par2_path% c /sm2048 /rr20 /rd1 /rf3 "%~1%~n1.par2" *
。将您的线路替换为以下线路:
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" *
)
)
假设您有以下结构:
Script.bat
dir001
- aaaaa
- file.001
- name.xyz
- bbbbb
- test.abc
- ccccc
- file.rar
上面的行将获取给定(拖放)文件夹中的所有文件夹,并列出该文件夹中的全部文件。对于这些文件,请在特定文件夹中创建par2文件。
将文件夹"dir001"放在Script.bat上。输出将类似于:
Script.bat
dir001
- aaaaa
- file.001
- file.par2
- name.xyz
- name.par2
- bbbbb
- test.abc
- test.par2
- ccccc
- file.rar
- file.par2
但是,如果您在文件夹"dir001\ccccc"中有另一个名为"file.txt"的文件,该文件将不会得到任何par2文件。如果您愿意,请在第二个FOR
循环中更改*%%~nf.par2* to *%%f.par2*
,您的par2文件将使用文件的全名(包括扩展名)。