我有一个批处理文件,它运行ajaxMinfier并压缩我的css和jquery。 我的xml文件使用相对路径。现在一切都在Windows 7中运行,但最近我升级到Windows 10,现在我的批处理文件失败了。 如果我双击我的批处理文件,则无法在同一文件夹中找到我的xml文件。
我喜欢他们
::Work
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -JS -CLOBBER -xml jquery.xml
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -CSS -CLOBBER -xml css.xml
pause > nul
我总是在批处理文件中给出ajaxMinifier的完整路径,这很好。它正在运行,但是在我的xml中为我的文件提供了相对路径。原因是我在不同的阶段有多个网页副本。
如果我使用命令行并运行我的批处理文件一切正常,但当然我在我正在运行批处理文件的文件夹中。如果我在Windows中单击我的批处理文件,它甚至无法找到与我的批处理文件位于同一位置的xml文件。
我在结尾处暂停,我怀疑原因是它在C中查找我的xml文件:而不是批处理文件的位置。
这是我的批处理文件
<root>
<output path="..\httpdocs\css\min\my.css">
<input path="..\httpdocs\css\raw\buttons.css"/>
<input path="..\httpdocs\css\raw\menustyles.css"/>
</output>
</root>
暂停通常被注释掉,但我需要看看发生了什么。
这是我的css xml文件
<root>
<output path="../httpdocs\js\min\mutual.js">
<input path="../httpdocs\js\raw\table_scroll.js"/>
<input path="../httpdocs\js\raw\mutual.js"/>
<input path="../httpdocs\js\raw\menudrop\menu_jquery.js"/>
</output>
</root>
和我的jquery xml文件
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIView *bigBlueView;
@property (strong, nonatomic) IBOutlet UILabel *caption;
@property (strong, nonatomic) IBOutlet UIButton *buttonOne;
@property (strong, nonatomic) IBOutlet UIButton *buttonTwo;
@property (strong, nonatomic) IBOutlet UILabel *lblOutlet;
@end
任何人都可以通过双击批处理文件告诉我如何在同一文件夹的xml文件中加载它?我无法使用固定路径。
答案 0 :(得分:2)
cd /d %~dp0
将工作目录更改为批处理文件所在的文件夹。 (当你双击批处理文件时,它的工作目录是%windir%\system32
)
答案 1 :(得分:0)
谢谢Stephan。我会赞成你,但你的评论旁边没有箭头。所以我不能。不确定您是否添加了评论而不是答案。但是,如果你回答正确的话,我会在你给出最佳答案的时候投票给你。
你的答案本身并不奏效,但它引导我找到正确的答案。您添加的行是正确的,但它需要另一行才能正常工作。
setlocal
cd /d %~dp0