批处理文件无法在Windows 10升级中工作

时间:2016-05-27 11:03:00

标签: windows batch-file path

我有一个批处理文件,它运行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文件中加载它?我无法使用固定路径。

2 个答案:

答案 0 :(得分:2)

cd /d %~dp0将工作目录更改为批处理文件所在的文件夹。 (当你双击批处理文件时,它的工作目录是%windir%\system32

答案 1 :(得分:0)

谢谢Stephan。我会赞成你,但你的评论旁边没有箭头。所以我不能。不确定您是否添加了评论而不是答案。但是,如果你回答正确的话,我会在你给出最佳答案的时候投票给你。

你的答案本身并不奏效,但它引导我找到正确的答案。您添加的行是正确的,但它需要另一行才能正常工作。

setlocal
cd /d %~dp0