2010-01-21 75 views

回答

31

變化%%%在批處理文件中使用,用於%~ta語法進入call /?

for %a in (MyFile.txt) do set FileDate=%~ta 
+5

+1。這實際上是正確的。解析'dir'的輸出最好是瘋狂。注意:在批處理文件中,加上'%'符號。 – Joey 2010-01-22 17:15:15

+0

謝謝,還有一個問題:如何獲取日期部分。以下語法是否足夠可靠還是有更好的方法。 集FILEDATE =%FILEDATE:〜0.10% – 2010-01-25 19:33:17

+1

如果你改變了國際設置可能無法正常工作,但除此之外,它應該確定 – 2010-01-25 20:39:06

2

它適用於Vista。有些事情可以嘗試:

  1. find替換爲find命令的標準路徑。 find是一個常用的工具名稱。有一個unix發現與Windows內置查找非常不同。像這樣:
    FOR /f %%a in ('dir ^|%windir%\system32\find.exe /i "myfile.txt"') DO SET fileDate=%%a

  2. 在cmd.exe窗口中檢查命令的輸出。爲此,您需要用%替換%%。
    FOR /f %a in ('dir ^|c:\windows\system32\find.exe /i "myfile.txt"') DO SET fileDate=%a
    這可能會給你一些想法。

  3. 如果顯示爲空白,然後再次,在命令提示符下,試試這個:

    dir | c:\windows\system32\find.exe /i "myfile.txt"

這應該告訴你,你需要看到的。

如果你仍然不能解決這個問題,編輯你的文章,包括你看到這些命令,有人會幫助你。

+0

我的陳述和(第1步和第2步)在我的計算機和任何其他win server 2003上都能正常工作。這可能是一個問題,它在服務ID下運行並由調度程序觸發? – 2010-01-21 18:03:50

+0

是的,它可能是。對於不同的服務ID,查找程序可能會有所不同,因爲它具有不同的路徑。最好在服務ID下運行這些命令來捕獲和檢查輸出。 – Cheeso 2010-01-21 18:21:40

+1

幾年前,由於命令處理器的語言不同(在我們的例子中,我們的批處理文件以win2000英文和西班牙文工作,但德文失敗),因此有關DIR命令輸出批處理的一些類似問題。 – 2010-01-21 20:55:56

0

什麼輸出(正好)確實dir myfile.txt在當前目錄中給出?如果你設置了分隔符,會發生什麼?

FOR /f "tokens=1,2* delims= " %%a in ('dir myfile.txt^|find /i " myfile.txt"') DO SET fileDate=%%a 

(注意delims=後面的空格)

1

您可以使用VBScript也得到一個文件修改日期(用%a更換%%a,使生活更輕鬆,你可以在命令行中執行此操作)

Set objFS=CreateObject("Scripting.FileSystemObject") 
Set objArgs = WScript.Arguments 
strFile= objArgs(0) 
WScript.Echo objFS.GetFile(strFile).DateLastModified 

將上述內容另存爲mygetdate。VBS和命令行

c:\test> cscript //nologo mygetdate.vbs myfile 
6

你可以做到這一點

forfiles /M myfile.txt /C "cmd /c echo @fdate @ftime" 
0

有用的參考,以獲取文件屬性使用批處理文件,包含的是上次修改時間:

FOR %%? IN ("C:\somefile\path\file.txt") DO (
    ECHO File Name Only  : %%~n? 
    ECHO File Extension  : %%~x? 
    ECHO Name in 8.3 notation : %%~sn? 
    ECHO File Attributes  : %%~a? 
    ECHO Located on Drive  : %%~d? 
    ECHO File Size   : %%~z? 
    ECHO Last-Modified Date : %%~t? 
    ECHO Parent Folder  : %%~dp? 
    ECHO Fully Qualified Path : %%~f? 
    ECHO FQP in 8.3 notation : %%~sf? 
    ECHO Location in the PATH : %%~dp$PATH:? 
) 
相關問題