0

ファイルをスクリプトにドラッグ アンド ドロップして、ファイルを移動および名前変更するバッチ スクリプトを作成しました。これは、ファイルのソースが不明であると仮定しますが、ターゲット ディレクトリは不明です。

私の解決策は、ターゲットディレクトリにCDを作成し、ソースファイル名を逆にし、forコマンドをバックスラッシュを区切りとして使用してファイル名を取得し、再度逆にして、最後に名前を変更することでした。

もっと簡単な解決策があったかどうか疑問に思っています。

@echo off

echo %1
set newSong=%1

cd "C:\Riot Games\League of Legends\RADS\projects\lol_air_client\releases\0.0.0.230\deploy\assets\sounds\ambient"

if not exist LoginScreenIntro.mp3.bak rename LoginScreenIntro.mp3 LoginScreenIntro.mp3.bak
del LoginScreenIntro.mp3

copy %newSong% "%CD%"

Call :ReverseString %newSong%
Set ReverseString.Result="%ReverseString.Result%"
for /f "tokens=1 delims=\" %%a in (%ReverseString.Result%) do set reversesong=%%a
Call :ReverseString "%reversesong%"
set newSong=%ReverseString.Result%

rename "%newSong%" LoginScreenIntro.mp3
pause


:ReverseString
  Set ReverseString.TempVar=%~1
  Set ReverseString.Result=
  :ReverseString.Loop
    Set ReverseString.Result=%ReverseString.TempVar:~0,1%%ReverseString.Result%
    Set ReverseString.TempVar=%ReverseString.TempVar:~1,999%
    if not "%ReverseString.TempVar%"=="" goto ReverseString.Loop
Goto :Eof
4

2 に答える 2

1

これはどう?

ren %1 NewName.ext
move %~dp1\NewName.ext NewDir
于 2013-01-17T16:28:09.103 に答える
0

必要だったのは

set newsong=%~n1%~x1
于 2013-01-18T04:15:49.047 に答える