から最後のフォルダを取得するI(例えば...)DOSのバッチファイルで、次の値があります。DOSのバッチ:相対パス
..\Apple\Jones
..\Banana\Smith
..\Pear\Wilson
私は姓の値(「ジョーンズ」を抽出する必要があり、 "スミス"、 "ウィルソン")を各値から計算する。どのようなテクニックを使って、これらの部分文字列の値を得ることができますか?このトピックによると
から最後のフォルダを取得するI(例えば...)DOSのバッチファイルで、次の値があります。DOSのバッチ:相対パス
..\Apple\Jones
..\Banana\Smith
..\Pear\Wilson
私は姓の値(「ジョーンズ」を抽出する必要があり、 "スミス"、 "ウィルソン")を各値から計算する。どのようなテクニックを使って、これらの部分文字列の値を得ることができますか?このトピックによると
私は従いません。それは私にバッチファイルの名前を示していますか?質問は何を求めているのですか? – lance
私の悪い説明に申し訳ありません。 %0にはスクリプトへのパスが含まれています。 %〜n0では、スクリプト名のみを抽出します。より明示的な例があります:/ D %% i for( ".. \ Apple \ Jones"、 ".. \ Banana \ Smith"、 ".. \ Pear \ Wilson")に対してdo echo %%〜ni – Nicolas
Delightful 。ありがとうございました。注:最後のフォルダ(実際のデータ)はピリオドを含む名前のディレクトリなので、echo %%〜ni %%〜xiを使用しました。 – lance
を使用することをお勧め私はすでにそのための機能を書きました。パスを指定すると、ファイル名またはパス名だけが返されます。
コピーしますバッチスクリプトの最後にこの機能...のURL、Windowsのパス、Linuxのパスなど:任意のパスのための作品集(下記手順)
rem ===========================================================================
:Name_From_Path
SetLocal
set _TMP_FOLDERNAME=%1
for %%g in ("%_TMP_FOLDERNAME%") do set _TMP_FOLDERNAME=%%~nxg
EndLocal & set _Name_From_Path=%_TMP_FOLDERNAME%
goto :EOF
rem ===========================================================================
使用法:
CALL :Name_Of_Path ..\Apple\Jones
ECHO %_Name_From_Path%
結果:ジョーンズ
[Windowsのコマンドは** not ** DOSです](https://superuser.com/q/451432/241386)。 DOSには '%〜n0'のような能力はありません –