我有一个Windows资源管理器上下文菜单项,它将调用批处理文件并向其传递上下文菜单显示的文件的文件路径,如下所示:
G:\htdocs\Labs\javascript\socialbuttons\socialable.html
我需要做的是检测文件路径是在我的开发服务器项目文件夹中还是在 labs 文件夹中。
如果它在我的项目文件夹中,那么我需要从文件路径中提取域名并将其存储在一个变量中,并附加文件路径的其余部分。
如果它在我的labs文件夹中,则只需从字符串中删除X个字符,并将余数存储在变量中。
我几乎不知道批处理脚本,所以我想把它拼凑起来。
要检测它是否在我的项目文件夹中,我认为这将完成工作......
所以给定这个文件路径传递给脚本......
G:\htdocs\projects\webdevapp\app\folder\file.php
那么这段代码
IF "%variable:~0,18%"=="G:\htdocs\projects"
会看到这是一个项目文件。
然后需要从字符串webdevapp
中抓取此部分,并将http://
添加到其开头,并将.dev
添加到其结尾。接下来,它需要将剩余的文件路径\app\folder\file.php
附加到它。
接下来需要将\
替换为/
s
结果字符串为:
http://webdevapp.dev/app/folder/file.php
现在,如果文件路径中没有项目路径并且是labs文件夹,那么只需要将其转为:
G:\htdocs\Labs\javascript\socialbuttons\socialable.html
进入这个:
http://localhost/Labs/javascript/socialbuttons/socialable.html
然后我可以使用新的字符串并在浏览器中打开:
start chrome.exe domain_variable_here
根据我的情况,任何人都可以帮助完成下一步工作吗?
答案 0 :(得分:0)
@echo off
setlocal enabledelayedexpansion
set "xchars=5"
set "pathtf=your path here"
echo %pathtf% | find "labs"
if %errorlevel% == 0 (
set "pathtf=!pathtf:~0,-%xchars%!"
goto :eof
)
echo %pathtf% | find "projects"
if %errorlevel% == 0 (
set "pathtf=%pathtf:\=/%"
set "pathtf=%pathtf:G:\htdocs\projects\webdevapp=http://webdevapp.dev%"
)
echo %pathtf%
结果将存储在%pathtf%
中