Ⅰ 在批处理中重命名一个文件夹,让文件夹的名字变成变量T的值
如以下代码,只支持14层以内文件夹重命名。 @echo offset /p t1=输入要重命名文件夹的完整路径(可拖进来):echo.set /p t=输入新文件夹名:if not exist %t1% goto :undocd /d %t1%for /f "tokens=1-14 delims=\" %%a in ("%cd%") do (if /i "%%a" neq "" set dd=%%aif /i "%%b" neq "" set dd=%%bif /i "%%c" neq "" set dd=%%cif /i "%%d" neq "" set dd=%%dif /i "%%e" neq "" set dd=%%eif /i "%%f" neq "" set dd=%%fif /i "%%g" neq "" set dd=%%gif /i "%%h" neq "" set dd=%%hif /i "%%i" neq "" set dd=%%iif /i "%%j" neq "" set dd=%%jif /i "%%k" neq "" set dd=%%kif /i "%%l" neq "" set dd=%%lif /i "%%m" neq "" set dd=%%mif /i "%%n" neq "" set dd=%%n)echo dd=%dd%cd..if not exist %cd%\%t% ren %dd% %t%pause :undopause>nul|echo 输入的路径无效
Ⅱ 批处理:用什么命令可以将一个特定的文件名设为一个变量的值。
还有一个问题是,路径知不知道?如果知道的话用下面的:@echo offset DD=C:\sss\for /f "delims=" %%i in ('dir /a-d /b "%DD%*"') do (set F=%%i)echo %F%pause如果不知道,用这个:(当然了有个前提,是SSS只有一个)@echo offfor /r C:\ %%i in (sss) do (if exist %%i set DD=%%i)for /f "delims=" %%i in ('dir /a-d /b "%DD%\*"') do (set F=%%i)echo %F%pause
Ⅲ 批处理获取文件名并保存至变量中
1 其实另保存为"数组"变量是没必要的,要作什么直接在for循环内写命令就能办到的。2 所列代码已将文件夹名保存到"数组"变量中了,但由于set array_!n! = %%i 这句等号前有空格,数组变量名其实在每个之后就也要带等量空格才匹配,而等号后有空格则所赋的文件夹名每个前也带了空格,因此应该去掉此句等号前后的空格3 echo %array_!n!%这句是不合格的,要写成call echo %%array_!n!%%4 针对第2条修改后,后一个for命令就能正常显示了,但"数组"起止值不对,各扩大了1个的范围
Ⅳ 批处理如何提提取变量然后执行我应该如何写
rem 测试无误把倒数第二行开头的echo去掉即可。@echo offset /p z="请输入下载地址"for /f "tokens=3 delims=/" %%i in ('echo %z%') do (for /f "tokens=1 delims=." %%j in ('echo %%i') do (echo ffmpeg -i "%z%" -vcodec -acodec -absf aac_adtstoasc "%%j.mp4"))pause
Ⅳ 求批处理:读取所有文件名赋值给变量,并且变量循环执行一条命令
如果 命令行 可以这样写 就简单了:convlog1.exe -i d:\logw3c\ex110309.log -o d:\logncsa\ -l comb因为每行不一样的地方只有一处。先在 d:\logw3c\ 下执行 tree /f > a.txt然后用记事本打开 a.txt显示:(类似这样)Folder PATH listingVolume serial number is 3B48-12F8C:. 0001.log 0002.log 0003.log 0004.logNo subfolders exist 把两头没用的都删了 只留下中间有用的文件名。然后查找替换: 把 四个空格 替换为 convlog1.exe -i d:\logw3c\ 就变成了convlog1.exe -i d:\logw3c\0001.logconvlog1.exe -i d:\logw3c\0002.logconvlog1.exe -i d:\logw3c\0003.logconvlog1.exe -i d:\logw3c\0004.log然后 再查找替换: 把 .log 替换为 .log -o d:\logncsa\ -l comb 就变成了convlog1.exe -i d:\logw3c\0001.log -o d:\logncsa\ -l comb convlog1.exe -i d:\logw3c\0002.log -o d:\logncsa\ -l comb convlog1.exe -i d:\logw3c\0003.log -o d:\logncsa\ -l comb convlog1.exe -i d:\logw3c\0004.log -o d:\logncsa\ -l comb 然后复制 粘贴到一个 cmd 框里面就能运行了。如果 同一行里 必须指定两次文件名,那么还是写一个小的EXE处理一下吧。
Ⅵ 如何用BAT读取指定目录下的文件名为变量
[email protected] off&setlocal enabledelayedexpansionset n=0for /f "delims=" %%a in ('dir /b "F:\11"') do (if /i not "%%a"=="22.txt" (set /a n+=1set "wj!n!=%%a"))for /f "tokens=1* delims==" %%a in ('set wj') do (echo %%b %%a)echo 共有%n%个文件(夹)set /p "a=请输入变量名:"set "a=!%a%!"echo 变量对应的文件(夹)是:%a%pause
Ⅶ 批处理:如何制作一个根据文件而命名值的一个变量
@echo offecho %~nx1pause得到参数1的文件名,之后你就可以自由发挥了
Ⅷ 求批处理将文件名赋给一个变量
for/f"delims="%%ain('dir/a-d/s/b*.48.*')do(setBL=%%~nxa)
未经允许不得转载:山九号 » 批处理如何将文件名提取成变量|在批处理中重命名一个文件夹让文件夹的名字变成变量T的值