0

最初に私のバッチ スクリプト スニペット (動作していません):

set _WRx32=wrar420.exe
set _WRx64=winrar-x64-420.exe
set _WRLNG=rarlng.rar

FOR %%f IN (_WRLNG, _WRx64, _WRx32) do set "%%f"="%%~nf"

[リスト内のすべての変数名 (!) について、変数の内容 (!) から拡張子を削除し、同じ変数に保存し直します]

質問: 変数 _WRLNG、_WRx64、_WRx32 に保存されているファイル名の拡張子を削除し、このファイル名 (拡張子なし) を同じ変数に戻すにはどうすればよいですか??

次のようなものが必要です: set var=%var~n% しかし、それは機能しません。そして、FORループでは、(...変数名...)リストから対応する変数に名前を変換する方法がわからないので、「〜n」、「〜nf」などのパラメーター拡張を適用できます. その上に。

誰でも私を助けることができますか?

ありがとう

4

3 に答える 3

1
@echo off
setlocal EnableDelayedExpansion

set _WRx32=wrar420.exe
set _WRx64=winrar-x64-420.exe
set _WRLNG=rarlng.rar

FOR %%f IN (_WRLNG, _WRx64, _WRx32) do (
   FOR %%g in (!%%f!) do set "%%f=%%~ng"
)
于 2013-04-12T01:33:14.993 に答える
0

これを試して:

FOR /f "delims=." %%f IN ("%_WRx32%") do set "_WRx32=%%f"
FOR /f "delims=." %%f IN ("%_WRx64%") do set "_WRx64=%%f"
FOR /f "delims=." %%f IN ("%_WRLNG%") do set "_WRLNG=%%f"
于 2013-04-11T23:38:22.660 に答える