1

区切り文字に単語を使用して、バッチ ファイル内の文字列を分割する必要があります。

たとえば、次のような入力がある場合:

C:\Dir1\Dir2\Dir3\File.c

出力を取得できるように、「Dir2」という単語を考慮して分割したいと思います。

Dir2\Dir3\File.c

Dir2 の親子ディレクトリの数は、処理前にはわかりません。

試してみましfor /fたが、複数の文字を含む区切り文字は受け入れず、単一の文字のみを受け入れるため、機能しません。

4

2 に答える 2

3

これを試して:

set "word=C:\Dir1\Dir2\Dir3\File.c"
set "word=%word:*C:\Dir1\=%"
echo %word%
于 2013-07-04T15:54:20.843 に答える
3
@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+

+含まれているのは、関連する不要なスペースがないことを示すためだけです。

于 2013-07-04T15:08:40.400 に答える