批处理文件在windows 10升级中不起作用
我有一个批处理文件,它运行ajaxMinfier并压缩我的css和jquery。 我的xml文件使用相对路径。现在一切都在Windows7中运行,但最近我升级到了Windows10,现在我的批处理文件失败了。 如果我双击批处理文件,它将无法在同一文件夹中找到我的xml文件 我有这样的批处理文件在windows 10升级中不起作用,windows,batch-file,path,Windows,Batch File,Path,我有一个批处理文件,它运行ajaxMinfier并压缩我的css和jquery。 我的xml文件使用相对路径。现在一切都在Windows7中运行,但最近我升级到了Windows10,现在我的批处理文件失败了。 如果我双击批处理文件,它将无法在同一文件夹中找到我的xml文件 我有这样的 compress.bat css.xml jquery.xml 我总是在批处理文件中给出ajaxMinifier的完整路径,这很好。它正在运行,但在xml中提供文件的相对路径。原因是,我有多个副本的网页在不同的阶
compress.bat
css.xml
jquery.xml
我总是在批处理文件中给出ajaxMinifier的完整路径,这很好。它正在运行,但在xml中提供文件的相对路径。原因是,我有多个副本的网页在不同的阶段
如果我使用命令行运行批处理文件,一切正常,但我当然在运行批处理文件的文件夹中。如果在windows中单击批处理文件,它甚至找不到与批处理文件位于同一位置的xml文件
我在结尾处暂停了一下,我怀疑原因是它在C:中查找我的xml文件,而不是批处理文件的位置
这是我的批处理文件
::Work
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -JS -CLOBBER -xml jquery.xml
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -CSS -CLOBBER -xml css.xml
pause > nul
暂停通常被注释掉,但我需要看看发生了什么
这是我的css 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>
还有我的jquery 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>
谁能告诉我如何通过双击批处理文件将其加载到同一文件夹中的xml文件中?我不能使用固定路径。谢谢Stephan。我本来会投你一票,但你的评论旁边没有箭头。所以我不能。不确定是否添加了注释而不是答案。然而,如果你回答正确,我会投你一票,因为你给出了最好的答案 你的答案本身不起作用,但它引导我找到了正确的答案。您添加的行是正确的,但需要另一行才能工作
setlocal
cd /d %~dp0
谢谢你,斯蒂芬。我本来会投你一票,但你的评论旁边没有箭头。所以我不能。不确定是否添加了注释而不是答案。然而,如果你回答正确,我会投你一票,因为你给出了最好的答案 你的答案本身不起作用,但它引导我找到了正确的答案。您添加的行是正确的,但需要另一行才能工作
setlocal
cd /d %~dp0
cd/d%~dp0
将工作目录更改为批处理文件所在的文件夹。(双击批处理文件时,其工作目录为%windir%\system32
)cd/d%~dp0
,将工作目录更改为批处理文件所在的文件夹。(双击批处理文件时,其工作目录为%windir%\system32
)cd/d%\dp0
,将工作目录更改为批处理文件所在的文件夹。(双击批处理文件时,其工作目录为%windir%\system32
)cd/d%\dp0
,将工作目录更改为批处理文件所在的文件夹。(双击批处理文件时,其工作目录为%windir%\system32
)setlocal
不是原因;我的评论中有一个输入错误(%\dp0
而不是%~dp0
),可能是您用第二个版本直观地更正了它。您完全正确。我已经删除了setlocal,它仍然有效。顺便说一句,这不是直觉。根据你的答案,我又在谷歌上搜索了一些,并找到了代码,但如果你没有给我错误的答案,我就不会找到正确的答案。无论如何,谢谢你。setlocal
不是原因;我的评论中有一个输入错误(%\dp0
而不是%~dp0
),可能是您用第二个版本直观地更正了它。您完全正确。我已经删除了setlocal,它仍然有效。顺便说一句,这不是直觉。根据你的答案,我又在谷歌上搜索了一些,并找到了代码,但如果你没有给我错误的答案,我就不会找到正确的答案。无论如何,谢谢你。