区切り文字に単語を使用して、バッチ ファイル内の文字列を分割する必要があります。
たとえば、次のような入力がある場合:
C:\Dir1\Dir2\Dir3\File.c
出力を取得できるように、「Dir2」という単語を考慮して分割したいと思います。
Dir2\Dir3\File.c
Dir2 の親子ディレクトリの数は、処理前にはわかりません。
試してみましfor /f
たが、複数の文字を含む区切り文字は受け入れず、単一の文字のみを受け入れるため、機能しません。
区切り文字に単語を使用して、バッチ ファイル内の文字列を分割する必要があります。
たとえば、次のような入力がある場合:
C:\Dir1\Dir2\Dir3\File.c
出力を取得できるように、「Dir2」という単語を考慮して分割したいと思います。
Dir2\Dir3\File.c
Dir2 の親子ディレクトリの数は、処理前にはわかりません。
試してみましfor /f
たが、複数の文字を含む区切り文字は受け入れず、単一の文字のみを受け入れるため、機能しません。
これを試して:
set "word=C:\Dir1\Dir2\Dir3\File.c"
set "word=%word:*C:\Dir1\=%"
echo %word%
@ECHO OFF
SETLOCAL
SET string=C:\Dir1\Dir2\Dir3\File.c
SET divider=Dir2
CALL SET after=%%string:*%divider%=%%
CALL SET before=%%string:%divider%%after%=%%
ECHO before=+%before%+
ECHO divider=+%divider%+
ECHO after=+%after%+
GOTO :eof
テスト出力:
before=+C:\Dir1\+
divider=+Dir2+
after=+\Dir3\File.c+
+
含まれているのは、関連する不要なスペースがないことを示すためだけです。