@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下執行失敗 原因 ...