Batch file 要移动和重命名文件的批处理(未知源)
我制作了一个批处理脚本,通过在脚本上拖放文件来移动和重命名文件。这将假定文件的源未知,但目标目录未知 我的解决方案是将CD刻录到目标目录,反转源文件名,将带有反斜杠的for命令用作delim以获得文件名,然后再次反转,最后重命名它 只是想知道是否有更简单的解决办法Batch file 要移动和重命名文件的批处理(未知源),batch-file,rename,move,Batch File,Rename,Move,我制作了一个批处理脚本,通过在脚本上拖放文件来移动和重命名文件。这将假定文件的源未知,但目标目录未知 我的解决方案是将CD刻录到目标目录,反转源文件名,将带有反斜杠的for命令用作delim以获得文件名,然后再次反转,最后重命名它 只是想知道是否有更简单的解决办法 @echo off echo %1 set newSong=%1 cd "C:\Riot Games\League of Legends\RADS\projects\lol_air_client\releases\0.0.0.23
@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
这个怎么样
ren %1 NewName.ext
move %~dp1\NewName.ext NewDir
嘿,我所需要的只是
set newsong=%~n1%~x1
将文件拖放到批处理脚本上时,变量中包含完整路径和目录。我想把这些东西剥光。。。我想我现在知道了…事实上,你可以使用
%~nx1
:)不知道批处理变量标志是类似C的!