Sublime Text构建批处理文件

时间:2013-12-17 15:11:09

标签: batch-file sublimetext2

当我在Sublime Text中按Ctrl + Shift + B时,我运行了一个批处理文件,在这个批处理文件中我有以下内容:

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:\上获取文件路径,并将文件(使用Beyond Compare 3)与完全相同的路径进行比较,但R:\除外。这一直很好用,但今天我必须对C:\上的文件和文件夹结构进行一些更改,现在说mytestfile.php的路径是:

  

C:\的Inetpub \ wwwroot的\主\站点\ mytestfile.php

所以更改的位是驱动器Main\上的R:\ HOWEVER我没有那个Main文件夹,我希望路径为:

  

C:\的Inetpub \ wwwroot的\站点\ mytestfile.php

如何通过删除.batMain\上文件路径的R:\来更改Z:\文件中的代码以解决此更改?

2 个答案:

答案 0 :(得分: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% 

答案 1 :(得分: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%