2013-12-17 3 views
0

, 나는이 배치 파일 내에서 나는 다음이 배치 파일 실행이 : 그래서숭고한 텍스트 빌드 배치 파일

set arg1=%1 
echo %arg1% 
set arg2=%arg1:c:=r:% 
echo %arg2% 
set arg3=%arg1:c:=z:% 
echo %arg3% 
bcompare %arg1% %arg2% 
bcompare %arg1% %arg3% 

, 나는 C:\에 파일 경로를 얻을 비교 R:\을 제외한 정확한 경로를 가진 파일 (Beyond Compare 3 사용). 이것은 좋은 일하고있다,하지만 오늘은 C:\ 내 파일 및 폴더 구조를 일부 변경 및 mytestfile.php 말을 할 수있는 경로를했습니다 지금이다 :

C : \을 Inetpub \ wwwroot에 \ 홈페이지 \ 사이트 \의 MyTestFile를. PHP

그래서 변경된 비트는 Main\ 그러나 드라이브 R:\에 내가 그 기본 폴더가없는 것입니다, 나는 경로가되고 싶어요 :

C : \을 Inetpub \ wwwroot에 \ site \ mytestfile.php

가 어떻게이 .bat 파일의 코드가 R:\Z:\의 파일 경로에 대한 Main\을 제거하여이 변경 내용을 설명하기 위해 변경할 수 있습니까?

도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

당신이 다른 사람의 대체를했던 같은 방법 :

set $path=%1 
set $path1=%$path:main\=% 

echo %$path% 
set $path2=%$path1:c:=r:% 
echo %$path2% 
set $path3=%$path1:c:=z:% 
echo %$path3% 
echo bcompare %$path% %$path2% 
echo bcompare %$path% %$path3% 
+0

이것은 작동하지 않습니다! 'C : '의 파일 경로에서'Main'을 제거했습니다! 나는 단지 다른 두 개의 드라이브에 그것을 제거하고 싶다 : ( – Ciwan

+0

비록 내가 대답을 얻을 수있었습니다. 감사합니다 – Ciwan

+0

EDIT 지금 확인을 확인하십시오 – SachaDee

0

편집 arg2 변수는 주요 디렉토리를 포함하지합니다.

set arg1=%1 
echo %arg1% 
set arg2=%arg1:c:=r:% 
echo %arg2% 
set arg3=%arg1:c:=z:% 
echo %arg3% 

::Select which parts of the path you want from %%a (drive letter) to the file 
for /f "tokens=1* delims=\" %%a in ("%arg1:"=%") do (set arg2="%%a\%%b\%%c\%%e") 

:: Compare 
:: C:\inetpub\wwwroot\Main\site\mytestfile.php 
:: %%a\%%b \%%c \%%d \%%e \%%f 

bcompare %arg1% %arg2% 
bcompare %arg1% %arg3% 
관련 문제