❶ 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
因為不清楚你的具體操作目的,是提取一個文件的還是所有的,所以代碼不一定對。