
@echo off
>"%~dp0abat" echo @ren %%1 "%%~nx11"
reg add "HKEY_CLASSES_ROOT\txtfile\shell\修改文件名\command" /ve /d "%~dp0abat ""%%1""" /f
pause
这是用系统中的txt文件做的测试,实际使用时将 txtfile修改你的文件类型即可兼容Winxp~Win7 Win7下需右键 以管理员身份运行
运行此批处理后会在txt文本文件的右键菜单中添加一项新菜单可重命名文件
编码设为ANSI后保存脚本
@echo off & title 获取文件名,修改时间,并记录到表格中 By 依梦琴瑶cd /d "%~dp0"
::设置要处理的文件夹
set SrcDir=D:\MyFolder
::设置要处理的文件格式,全部格式请直接用
set Ext=
::设置是否包含子目录,是=1,否=其它任何非1的字符
set Sub=0
::保存的表格文件名
set Excel=文件列表表格xlsx
if "%Sub%"=="1" set "S=/s"
pushd "%SrcDir%"
echo 正在获取中,请耐心等待。。。
(echo "文件名","修改时间"
for /f "delims=" %%a in ('dir /a-d%S%/b/tw %Ext% 2^>nul') do (
echo "%%~nxa","%%~ta"
))>"%tmp%\MyFilesListTempcsv"
popd
call :WriteXLSXFile
cls & echo 文件列表表格生成完毕,请在脚本同目录下查看“%Excel%”。
pause
exit
:WriteXLSXFile
(echo Set oExcel = CreateObject("ExcelApplication"^)
echo oExcelWorkbooksOpen "%tmp%\MyFilesListTempcsv"
echo oExcelActiveSheetColumns("A:O"^)Select
echo oExcelSelectionEntireColumnAutoFit
echo oExcelActiveWorkbookSaveAs "%~dp0%Excel%",51
echo oExcelQuit)>"%tmp%\Csv2Xlsxvbs"
del /f /q "%~dp0%Excel%" 2>nul
"%tmp%\Csv2Xlsxvbs"
goto :eof
以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件夹放一起运行
@echo off
rem 获取当前目录下一个指定文件夹内的一个指定类型/扩展名/后缀名的文件的名称
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /a-d/b "\AABB\txt"') do set "txtfile=%%a"
echo;%txtfile%
echo;%#% +%$%%$%/%@% %z%
pause
exit
比如说%1 是c:\windows\111txt
我想得到c:\ —————— echo %~d1\
c:\windows\—————— echo %~dp1
111 -----------------echo %~n1
111txt ------------echo %~nx1
把文件拖到下面的批处理试试效果
@echo off
echo %~d1\
echo %~dp1
echo %~n1
echo %~nx1
pause
可以完成,给你几个建议,把ttt文件夹换个位置,不要在这个文件夹内,然后你就可以用FOR /R来达到第一个要求,要求2的话,你可以用FOR /F 的额外参数来实现,至于要求3不用担心TAB空位,因为FOR /F拆分元素规则的原因,它会把TAB也列为一个元素,或者你也可以把TAB空位作为分隔符号用
以上就是关于批处理获取当前文件名全部的内容,包括:批处理获取当前文件名、用BAT导出文件夹内所有文件名和修改时间,格式为EXCEL,不要完整路径怎么弄、bat当前目录下的AABB文件夹中有个*.txt,我想通过bat命令拿到这个*.txt的名字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)