bat 獲取檔案的相關屬性整理

2021-08-10 04:08:53 字數 891 閱讀 2605

@echo off

setlocal enabledelayedexpansion

set "pic_dir=d:\dtserver\server\200134\data\*.*"

for /f %%i in ('dir /s /b %pic_dir%') do (

set str_date=%%~ti

set str_path=%%~ni

echo !str_date!

echo !str_path!

)pause

在批處理開頭加入cd /d %~dp0 一行**就真真實實地做到「編寫一次,到處執行」。%0是批處理檔案本身的路徑,%~dp進行擴充套件, d向前擴充套件到驅動器,p往後擴充套件到路徑。例如,你的bat檔案在e:/mybat/test.bat,則%0就是e:/mybat/test.bat, %~dp0是e:/mybat/。

另外,%i提取第i個命令選項,例如%1提取第1個option,i可以取值從1到9

%~0: 取檔名(名+副檔名)

%~f0:取全路徑

%~d0:取驅動器名

%~p0:只取路徑(不包驅動器)

%~n0:只取檔名

%~x0:只取副檔名

%~s0:取縮寫全路徑名

%~a0:取檔案屬性

%~t0:取檔案建立時間

%~z0:取檔案大小

以上選項可以組合起來使用。

%1就是表示批處理的第乙個引數,

%~1表示刪除引數外面的引號

比如有個批處理檔案 test.bat

在cmd中輸入命令

test.bat "test"

%1表示的是「test「。%~1表示的是test,沒有了雙引號

bat 獲取檔案的生成時間並複製相關檔案

如下 echo off 複製檔案 路徑 set frompath 172.18.112.10 dqfw raw agme soil 檔案的儲存路徑 set endpath d hc temp parse soilwaternew 獲取yyyy mm dd格式的當前日期 set nowdate dat...

Android shell相關的Bat檔案執行

1.echo errorlevel 這個命令,顯示的結果是上一條命令執行的返回值,上一條命令反覆的數值 通常有0 1 1,以及9009等 含意,是由上一條命令自己規定的,沒有通用的規則。成功為0 錯誤為1也不是肯定的,只是大家的習慣而已,沒有人能強迫誰,事實上上一條命令的編寫者可以控制一切,所以才有...

bat檔案獲取當前目錄

win10 上 cd d dp0 切換到當前bat檔案所在目錄 原文 知道windows的bat指令碼很強大,但是具體命令向來很少接觸,今天在win7上執行自己以前寫的乙個安裝mysql資料庫到系統服務的指令碼時,遇到一些問題,下面記錄一下。問題 mysql服務安裝指令碼在win7下執行失敗 原因 ...