1

ファイル パスを受け入れるバッチ ファイルがあります。次に、ファイル名とファイル拡張子を別々に分離する必要があります。たとえば、ファイル パスが「\svr-01\My Docs\My Spreadsheet.xls」の場合、2 つの個別の変数が必要です。1 つは「My SpreadSheet」を含み、もう 1 つは「.xls」を含みます。

ここに私がこれまで持っているものがあります。ファイル名と拡張子をパスから分離することができました:

set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~nxA"
echo.%FILENAME%

この変数からファイル名と拡張子を分離するにはどうすればよいですか?

4

3 に答える 3

4
set FILEPATH=\\SVR-01\My Docs\My Spreadsheet.xls
for /F "delims=" %%A in ("%FILEPATH%") do (
  set "FILEFULLNAME=%%~nxA"
  set "FILENAME=%%~nA"
  set "FILEEXT=%%~xA"
)
set file
于 2012-06-19T16:08:49.293 に答える
1

%~nファイル名と拡張子に使用できます%~x

あなたがすでに持っているものは、2つを組み合わせるだけです。部位ごとに使い分けてください。

rem Filename
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~nA"

rem Extension
for /F "delims=" %%A in ("%FILEPATH%") do set "FILENAME=%%~xA"

その他のオプションについては、こちらをご覧ください。

于 2012-06-19T16:05:42.817 に答える
1

見るべきだと思います

%~1 - %1 を周囲の引用符 (") を削除して展開します
%~f1 - %1 を完全修飾パス名に
展開します %~d1 - %1 をドライブ文字のみに
展開します %~p1 - %1 をパスのみに展開します
%~n1 - %1 をファイル名のみに展開します
%~x1 - %1 をファイル拡張子のみに
展開します %~s1 - 展開されたパスには短い名前のみが含まれます
%~a1 - %1 をファイル属性に展開します
%~t1 - % を展開します1 からファイル
%~z1の日付/時刻- %1 をファイルのサイズに展開します

特に

%~p1 - %1 をパスのみに展開します

于 2017-02-28T15:14:01.370 に答える