ben bir dize olarak bir dosyanın son değiştirilme tarihini dönmek gerekiyordu şu kodu var olduğunda: Benve toplu dosya içinde İÇİN/F ve WMIC'de içinde kaçmak ne
o:getLastModifiedDate
@echo on
SETLOCAL enabledelayedexpansion
set FILE=%~f1
set FILE=!FILE:%NETWORK_DRIVE_SHARE_PATH%=%NETWORK_DRIVE_NAME%!
set FILE=%FILE:\=\\%
set RETURN_VALUE="internal script error"
for /f "tokens=* usebackq" %%d in (`wmic datafile where Name^="%FILE%" get lastmodified ^| findstr ^"[0-9]^"`) do (set tmpd="%%d ddd"
echo 111111 %tmpd%
echo 222222 !tmpd!
echo 333333 %%tmpd%%
set RETURN_VALUE=%tmpd:~0,14%
)
(ENDLOCAL
set getLastModifiedDateResult=%RETURN_VALUE%
)
exit
@echo off
goto :eof
bekliyoruz
set tmpd="%%d ddd"
en az ddd
değerini %tmpd%
için değer olarak ayarlar.
Ancak yürütme sırasında, hiçbir şey yapılır:
C:\Windows\system32>for /F "tokens=* usebackq" %d in (`wmic datafile where Name="S:\\Actually\\Existing File.csv" get lastmodified | findstr "[0-9]"`) do (
set tmpd="%d ddd"
echo 111111
echo 222222 !tmpd!
echo 333333 %tmpd%
set RETURN_VALUE=~0,14
)
benim
için döngü Bu sorunun nedeni olmasını bekliyoruz. Yanlış ben yaptım
C:\Users\uuuu>for /f "tokens=* usebackq" %d in (`wmic datafile where Name^="S:\\Actually\\Existing File.csv" get lastmodified ^| findstr ^"[0-9]^"`) do (set tmpd=%d)
[[email protected] auf zzzz]
) sers\yc067xd>(set tmpd=20150413172700.000000+120
[[email protected] auf FS00QHE0]
C:\Users\uuuu>echo %tmpd%
20150413172700.000000+120
şey: Ben cmd.exe tam olarak aynı dizeyi yürütmek, ben bir sonuç elde?
Benim için bir toplu iş dosyasında çalışır, muhtemelen sizin dosyaınız: S: \\ Aslında \\ Varolan File.csv' mevcut değil. Btw. Sadece “echo 2222! Tmpd!” Anlamlıdır – jeb
WMIC sonucunu çözmek için [SO: wmic komutu için toplu komutta metin garnitimi] okumanız gerekir (http://stackoverflow.com/a/25604222/463115) – jeb
@ jeb Şey: Bu yolu Notepad ++ 'da açarak dosyayı açabilirim. Böylece, bu dosyanın mevcut olduğundan oldukça eminim:/ ! Tmpd için teşekkürler! ipucu. Ne zaman kullanacağım çok karıştı - nasıl denir? - değişken tanımlayıcı. – KoenigGunther