嘿stackoverflow社区,
我试图在我的xampp / htdocs目录中为我的.html文件在Sublime Text 3中建立一个构建系统。
因此我需要替换部分文件路径并添加
"http://localhost/"
在开始时,然后在浏览器中调用它。随意发布任何建议。
到目前为止,我从其他主题中发现了什么:
SETLOCAL ENABLEDELAYEDEXPANSION
-- represtened by the $file variable in Sublimetext 3 - filepath would look like "${file}" --
SET filepath="C:\xampp\htdocs\test.html"
SET searchstring="C:\xampp\htdocs\"
SET replacestring="http://localhost/"
SET modifiedpath=%searchstring%=%replacestring%!
-- not sure about this one but it should work as it does for hardcoded sites --
"C:\Program Files\Opera\launcher.exe" !modifiedpath!
我从这些命令得到的结果只是我在浏览器中打开的第一个文件路径。
我做错了什么?我找不到任何关于使用cmd操纵路径的主题。 系统= W7 / 32位和W8 / 64位相同的结果
提前致谢, 彼得
答案 0 :(得分:1)
您的示例是使用新路径替换整个路径。如果始终如此,您可以使用%~filename操作操作来完成此操作。
@echo off
set FILEPATH=c:\xampp\htdocs\test.html
call :launch "%FILEPATH%"
goto :EOF
:launch
echo "C:\Program Files\Opera\launcher.exe" "http://localhost/%~nx1"
或者,如果您将FILEPATH作为参数%1提供给批处理文件,只需
echo "C:\Program Files\Opera\launcher.exe" "http://localhost/%~nx1"
您可以通过运行命令
了解有关cmd中文件名操作选项的更多信息help for
如果不是这种情况,那么尝试设置搜索并替换字符串就不会给自己带来任何好处。只需进行必要的搜索并将文本替换为内联就更简单了。
@echo off
set FILEPATH=c:\xampp\htdocs\foo\test.html
set NEWPATH=%FILEPATH:c:\xampp\htdocs\=http://localhost/%
echo "C:\Program Files\Opera\launcher.exe" "%NEWPATH:\=/%"
您可以通过运行
了解有关字符串替换的更多信息help set
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:: -- represtened by the $file variable in Sublimetext 3 - filepath would look like "${file}" --
SET "filepath=C:\xampp\htdocs\test.html"
SET "searchstring=C:\xampp\htdocs\"
SET "replacestring=http://localhost/"
CALL SET "modifiedpath=%%filepath:%searchstring%=%replacestring%%%"
:: Belt-and-braces
SET "modifiedpath=%modifiedpath:\=/%"
:: -- not sure about this one but it should work as it does for hardcoded sites --
ECHO "C:\Program Files\Opera\launcher.exe" "%modifiedpath%"
GOTO :EOF
这应该有效 - 这里实际上不需要enabledelayeexpansion
。
不确定Opera - 可执行文件名称周围的引号是必需的,但参数可能也许不是。由于我没有安装它,我只是ECHO
编辑它 - 您需要删除ECHO
才能使其正常工作。实际上,CMD
将只显示一个应该调用Opera的命令行。