0

カスタム定義のプロトコル (phpfile) を使用すると、ブラウザーを介してエディターで php ファイルを開くことができます。唯一の問題は、ブラウザごとに異なる完全な URL を提供することです。

  • phpfile:/[ファイル]
  • phpfile:/[ファイル]/
  • phpfile://[ファイル]/
  • phpfile://[ファイル]

これらはすべて [file] に変換する必要があります。問題は、構文エラーが発生することです。正しい構文は何ですか?

set var=%1
if("%var:~0,9%"=="phpfile:/")
{
    set url = %var:~9% 
}
else
{
    set url = %var:~10%
}

if(%var:-1,1% == "/")
{
    url = %url:~0,-1%   
}
START "" "C:\Program Files (x86)\NuSphere\PhpED\7.0\phped.exe" url

===編集===私は今、次のようになりましたが、URLの最後に「」を追加しています

SETLOCAL enabledelayedexpansion

set var=%1

if %var:~0,9%=="phpfile:/" (
    set url = %var:~9% 
) else (
    set url = %var:~10%
)

if "%var:~-1%"=="\" (
    set url = %url:~0,-1%"
)
if "%var:~-1%"=="/" (
    set url = %url:~0,-1%"
)

START "" "C:\Program Files (x86)\NuSphere\PhpED\7.0\phped.exe" %url:"=%
4

2 に答える 2

2

これは、バッチファイルとCの間に恐ろしい野郎を書いたが、どこでも使用されている言語がないためです。

次のことを試してください。

setlocal enabledelayedexpansion
set "var=%~1"
if "!var:~0,9!=="phpfile:/" (
    set "url=!var:~9!"
) else (
    set "url=!var:~10!"
)

if "!var:-1,1!"=="/" (
    set "url=!url:~0,-1!"
)

START "" "C:\Program Files (x86)\NuSphere\PhpED\7.0\phped.exe" "!url!"

遅延拡張は、主にバッチファイルで問題を引き起こす一部の文字をより適切に処理するために使用されました。しかし、一般的には、コードが機能することをどのように期待していたのだろうかと思います。

于 2012-07-30T08:37:19.673 に答える
1

あなたのコードにはかなりの数の問題がありました、これは物事を修正するはずです:

set var="%1"
if %var:~0,9%=="phpfile:/" (
    set url="%var:~9%"
) else (
   set url="%var:~10%"
)

if "%var:-1,1%"=="/" (
    set url="%url:~0,-1%"
)
START "" "C:\Program Files (x86)\NuSphere\PhpED\7.0\phped.exe" url

を使用して、バッチファイルコマンドの構文を確認できますhelp <command>。IFステートメントは中括弧を使用しないか、条件ステートメントの前後に丸括弧を必要とします。

于 2012-07-30T08:37:53.940 に答える