2014-04-23 3 views
1

그래서 내 배치 파일은이 작업을 수행 할 예정이다 :배치 정렬 시스템

나는 몇 백 WinRar를 생성 내가 생성 된 폴더 트리에 넣고 싶다 "(NAME) .part ??? RAR."파일이 .

첫 번째 10 개의 파일 (001에서 010까지)을 001이라는 새 폴더 (1이 아닌)에 넣어야합니다. 다음 10 (011-020) 걸리고 002에 넣으십시오.

나는 0을 자동으로 추가하여 모든 것을 고정시키고 모든 변수를 테스트했지만 실제 파일 이동이 작동하지 않습니다. . 여기

내가 실행하기 위해 노력하고있어입니다 :

move "%FILENAME%" %LOOP2%\ 

%의 LOOP2 %의을하고 (1에서 시작하고 한 모든 열 번째 루프 간다) 필요한 모든과 단지 var에 %의 루프 %입니다 그것 앞에 제로 (그래서 007, 035, 455 등).

%의 파일 이름 % 좀 더 변수에서 온다 :

set FILENAME=%NAME%.part%COUNT2%.rar 

%가 NAME %의 파일/파일/filepack의 이름을 보관 유지하는 내가, 예를 들어, 이동하려는 (?) "스플릿 file.part001.rar"는 것 "스플릿 파일" (사용자 입력)

% COUNT2 %의 1에서 시작하고있는 사용자가 입력 % 번호 % VAR과 일치 할 때까지의 모든 루프를 증가 마지막 파일 번호 (예 : 468). 그것은 변경하고 싶지 않은 % COUNT %에서 나옵니다. 그래서 나는 % COUNT2 %를 만들었습니다.

거의 모든 것을 시도했지만 때로는 cmd가 파일이나 디렉토리를 찾지 못하거나 갑자기 "구문 상 사용할 수 없습니다"라는 문구가 잠시 닫히는 것을 알려줍니다.

사람들은 이중 퍼센트 기호 또는 큰 따옴표를 붙이거나 따옴표를 붙이지 말아야하며 대부분의 조합을 시도했지만 여전히 작동하지 않습니다. 누군가 나에게 올바른 구문을주고 어디에서 어떻게 인용 부호와 이중 퍼센트 기호를 사용해야하는지 알려 줄 수 있습니까?

나는 내 코드를 알고 있으며이 텍스트는 꽤 지저분하지만 여전히 배우고있다. Ofc 나는 Dr. Google과 Stackoverflow에 질문을했지만 내 경우는 약간 구체적이라고 생각한다.

+0

그것은 사용자가 입력 한 값' "분할 된 파일은"'그 것입니다 가능성이 높습니다 'FILENAME' 변수에 덧붙여진 것은'Splitted file ".part001.rar'와 같습니다. 이것은 올바르지 않습니다. 이 파일은 "Splitted file.part001.rar"처럼 보일 것입니다. 'FILENAME' var을 반향시키고'move' 명령 전에 멈추어 실제로 어떻게 보이는지 보았습니까? –

+0

'set NAME = % NAME : "= %'와 같이'% NAME %'에서 따옴표를 제거 할 수 있습니다. 그러면 전체 파일 이름'set FILENAME ="% NAME % .part % COUNT2 %를 따옴표로 묶을 수 있습니다. rater ". –

+0

나는 전에 qoutes를 확인했는데, 아무 것도 출력하지 않고 % FILENAME % 출력을 반향했다. – RapidFireArts

답변

2

당신은 당신의 코드를 표시하지 않은 문제가 무엇인지 추측 할 방법이 없다, 그래서 난 내 자신을 만들어 :

@echo off 
setlocal EnableDelayedExpansion 

set /P "NAME=Enter name of file/files/filepack (NO quotes): " 
set /P "NUMBER=Enter number of files to copy: " 

set /A COUNT2=1000, LOOP2=1000 
for /L %%i in (1,1,%NUMBER%) do (
    set /A COUNT2+=1, COUNT2mod10=COUNT2 %% 10 
    if !COUNT2mod10! equ 1 (
     set /A LOOP2+=1 
     md !LOOP2:~1! 
    ) 
    move "%NAME%.part!COUNT2:~1!.rar" !LOOP2:~1! 
) 
+0

나는 코드의 나머지 부분이 그렇게 중요하지 않으며 매우 지저분하다고 생각했다. 또한 나는 그것을 사용할 수 없기 때문에 FOR를 사용하지 않았다. – RapidFireArts

+0

http://pastebin.com/XRQh7XFf 에코와 일시 중지가 제거되었습니다 – RapidFireArts

+0

코드가 완벽하게 작동했습니다. 대단히 감사합니다.하지만 코드를 직접 이해하지 못했을 때 코드를 이해하고 싶습니다. 세트/A COUNT2 + = 1, COUNT2mod10 = COUNT2 %% 10 왜 COUNT2mod10입니까? "%% 10"은 무엇을 의미합니까? : D 나는 감탄 부호가 반전을 의미한다 그러나 왜 var의 전후에다는 것을 나는 생각한다? 왜 퍼센트 기호가 없습니까? 저는 진짜 초보자입니다.이 느낌표가 여기 사용 된 방법에 대한 단서가 없습니다. ^^ ' 죄송하지만 다시 코드를 보내 주셔서 감사합니다! – RapidFireArts