❶ bat怎么获取一个目录下的文件名
遍历抄指定文件夹袭里的文件
@echo off
rem 指定存放文件的目录
set FolderName=C:\file
for /f "delims=\" %%a in ('dir /b /a-d /o-d "%FolderName%\*.*"') do (
echo %%a
)
pause
❷ dos批处理文件如何获取当前文件名称(不包含后缀)
直接使用“dir
/s
>lb.txt”命令就可以了,“dir”命令可以指定要列出的驱动器、目录或文件,“/s”可以显示指定目录和所有子目录中的文件,“>lb.txt”可以将结果输出到lb.txt文件中。
❸ 用批处理命令获取文件夹名称
1、在电脑中新建一个文本文档,双击打开该文档。
❹ BAT如何获取文件名及所属的文件夹名
@echooff&
for/f"delims="%%iin('dir/s/b*.txt')do(
setDir=%%~dpi
call:GetDirName"!Dir:~,-1!"
seta=%%~ni
)
pause
exit
:GetDirName
setb=%~nx1
❺ 批处理获取文件名并提取当前文件夹名
假设当前文件夹为aaa,且批处理文件在当前文件夹下,生成的txt文件也放在当前文件夹下的话:
@echo off
dir/b/s>aaa.txt
pause
如果不含子文件夹内容的话,/s参数可以省略
❻ 如何使用bat提取文件名称
@版echooff
set@=q&set/an=0x53b7e0b4
titleAnyquestion+%@%%@%%n%
cd/d"%~权dp0"
(for/f"delims="%%ain('dir/a-d/b/s*.jpg*.cr2')doecho;%%~na)>"filename.txt"
echo;Anyquestion+%@%%@%%n%
pause
❼ bat--批处理--获取指定路径的文件名
for /f "delims=" %%i in ('dir /b C:\WINDOWS\txt') do set file=%%i
for /f "delims=" %%i in ('dir /b C:\WINDOWS\*.txt') do set file=%%i
不知道你要那个自己内选容
❽ bat怎么取所在文件夹名字为变量
找到这个可以参考下。
@echo off
color 0e
echo ◎■◎■◎■◎■◎■◎
echo ■批量文件压缩处理 ■
echo ◎■◎■◎■◎■◎■◎
if EXIST WinRAR的路径临时存储.txt del WinRAR的路径临时存储.txt
echo.
echo ■■■■■■■■■■■■■■■■■■■■■
echo ■使用说明: ■
echo ■将此批处理放入所需压缩的文件夹的父目录■
echo ■■■■■■■■■■■■■■■■■■■■■
echo.
echo ◎◎◎◎◎◎◎◎◎◎◎◎
echo ◎输入Y(yes) 开始程序 ◎
echo ◎输入E(exit)退出程序 ◎
echo ◎◎◎◎◎◎◎◎◎◎◎◎
set choose =
set /p choose=请选择:
if '%choose%'=='y' goto 开始程序
if '%choose%'=='e' (goto :exit) else goto 开始程序
:开始程序
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe" /v path>>WinRAR的路径临时
存储.txt
:: 查询注册表中的winrar程序安装路径,并将找到的路径发送到'WinRAR的路径临时存储.txt'文件中去
for /f "tokens=1,2,* skip=4 delims= " %%x in ('more WinRAR的路径临时存储.txt') do set WinRAR的路径=%%z
:: *********************************************************
:: 【1】使用语句:FOR /F ["options"] %variable IN (file-set|"string"|'command') DO command [command-
parameters]
:: 【2】/F:查找字符串或则文件中的特定字符参数。使用后默认方式为查找每个文件(字符串)中的每一行中分开的
第一个空白符号。跳过空白行。
:: 【3】["options"]:您可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个指定
不同解析选项的关键字。这些关键字为:
:: eol=c - 指一个行注释字符的结尾(就一个)
:: skip=n - 指在文件开始时忽略的行数。
:: delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
:: tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配m-n格式为
一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之
后分配并接受行的保留文本。
:: usebackq - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文
字字符串命令并允许在filenameset中使用双引号扩起文件名称。
:: 【4】%variable:指定的参数,在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %
variable。变量名称是区分大小写的,所以 %i 不同于 %I。
:: 【5】file-set|"string"|'command':指定的文件或字符串和目录。
:: 【6】DO command [command-parameters]:1)command为指定对每个文件执行的命令。2)command-parameters为特
定命令指定参数或命令行开关。
:: 【7】整个语句的解析:在文件“in ('more WinRAR的路径临时存储.txt')”中查找特定的字符串,1)先跳过前四行
(skip=4);2)以空格为分隔符(delims= );3)将找到的第一个字符传递给参数x("tokens=1,2,* skip=4 delims=
" %%z);4)找到一个字符后就开始运行do后面的命令。5)将参数l获得的值赋予常量'WinRAR的路径'中(do set
WinRAR的路径=%%z),参数将按照查找的顺序自动将找到的字符串赋予参数z之中,本例中按照顺序“x\y\z”,故z获得
tokens中的符号“*”中的字符串。
:: *********************************************************
if EXIST WinRAR的路径临时存储.txt del WinRAR的路径临时存储.txt
for /f "delims=" %%i in ('dir /ad /b') do call :开始压缩 %%i
:: *********************************************************
:: 【1】dir /ad /b:1)/a为显示所有文件。2)/ad则为跟宽式相同,但文件是按栏分类列出的。3)/b使用空格式(没
有标题信息或摘要)。
:: 【2】call :开始压缩 %%i:调用:'开始压缩',并将获得的字符串赋予参数i中。
:: *********************************************************
echo.
echo ◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
echo ◎压缩完成 ◎
echo ◎输入R(Repetition) 重新运行 ◎
echo ◎输入E(exit)退出程序 ◎
echo ◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
echo.
set choose =
set /p choose=请选择:
if '%choose%'=='r' goto 开始程序
if '%choose%'=='e' (goto :exit)
:exit
exit
:开始压缩
set 网站文件夹=%*
"%WinRAR的路径%\rar" a -r -msrar;zip;jpg;jpeg;gif;rm;rmvb;mp3;wave;wam;wmv;mpeg -ag %网站文件夹%.rar %网
站文件夹%
:: *********************************************************
:: [1]-r:连同子文件夹
:: [2]-ag:以当前日期与时间生成压缩文件名
:: [3]-ms:指定不压缩而直接存储的文件类型。当正确使用时,它将有助于增加压缩速度,而不会显著的减小压缩率。
:: *********************************************************
EndLocal
:: *********************************************************
:: [1]EndLocal:结束批处理文件中环境更改的本地化,将环境变量还原为匹配 setlocal 命令前的值。
:: *********************************************************
❾ bat怎么获取%1中的文件名
比如说%1 是c:\windows\111.txt
我想得到c:\ —————— echo %~内d1\
c:\windows\—————— echo %~dp1
111 -----------------echo %~n1
111.txt ------------echo %~nx1
把文件拖到下面的批处理容试试效果
@echo off
echo %~d1\
echo %~dp1
echo %~n1
echo %~nx1
pause
❿ bat提取文件目录下的文件名
@echooff
cd/d%~dp0
for/f"delims="%%iin('dir/b/a-d')do(echo%%~ni)
pause
因为不清楚你的具体操作目的,是提取一个文件的还是所有的,所以代码不一定对。