我想我已經咬掉了很多東西,而不是咀嚼。在CMD中重命名包含文件日期的文件
我是法庭記者,在明尼蘇達法院系統工作。我們制定了一項新政策來提交我們的電子票據,因爲許多記者不再打印紙質記錄。不同品牌的報告機器創建具有不同命名約定的文件,並且我們希望將名稱標準化,以便地區管理部門的人員可以在我們不在的時候輕鬆找到合適的註釋。
因此,我們想要將FILE.001,FILE.002和20151018-082815.sgstn重命名爲文件的創建日期。 sgstn文件當然有一個獨特的名字,但創建FILE。*文件的無處不在的編寫者確實需要重命名,而標準化將幫助所有人。我正在創建一個CMD文件,該文件也將調查法官的姓名和作家品牌,因此,任何從存儲中拉出筆記的人都會發現他們正在尋找的內容:「2015-10-18 Judder Jones,Stentura作家。 001「
我發現很多用今天的日期和時間重命名文件的解決方案,但我們想用他們自己的日期和時間重命名它們。
我正在使用Windows 7 Pro中的標準用戶,並且沒有安裝第三方軟件的選項。 Windows允許個人用戶設置他們的首選日期樣式,並dbenham和其他人在這裏向我展示瞭如何從註冊表中獲得該樣式:
:: For REG.EXE 3.0 (Windows XP) and later versions
FOR /F "tokens=3" %%A IN (
'REG QUERY "HKCU\Control Panel\International" /v sShortDate'
) DO (SET sShortDate=%%A)
Echo %sShortDate%
,將返回YYYY-MM-DD或DM-YY或任何用戶已選擇。
然後我可以測試,看看有什麼內容是不同的部分串的:
for /f "tokens=1,2,3 delims=/-" %%A in ("%sShortDate%") do (
for /f "tokens=1" %%D in ("%%A") do (
set Part1=%%D
)
for /f "tokens=1" %%D in ("%%B") do (
set Part2=%%D
)
for /f "tokens=1" %%D in ("%%C") do (
set Part3=%%D
)
)
echo Part1 = %Part1%
echo Part2 = %Part2%
echo Part3 = %Part3%
但這一切變得非常笨重,和我一個堅實的24小時後,我只有一半了閱讀這裏和其他地方。在Windows中,在CMD提示符下還是在任何命令行可用的工具中,確實沒有辦法以可預測的格式獲取文件的日期並使用該日期?
任何人都可以憐惜我,並給我們一個不太麻煩的方法來找出用戶的特定系統認爲日期應該被格式化爲什麼,並因此一致地重命名所有在CMD快捷方式上丟棄的文件?
最後,這是我的第一篇文章。所有建設性的批評都很樂意接受。認真。
- 蒂莫西J.麥高恩
編輯補充: 也許我已經被這個得太多。這是用戶在註冊表中用於調查日期格式的配置單元。我們應該能夠從命令行寫入我們自己的蜂巢;對?
所以我可以讀取用戶的首選日期格式,將其保存到變量中,強制使用我想使用的日期格式,處理這些文件,然後重置用戶的日期格式。對?值得一試。
我會報告回來,如果它的工作,但任何更多的意見是值得歡迎的!
如果可以這樣做,如果以vbscript或powershell或者幾乎任何實際的編程語言實現,這將更加可靠。雖然你可以批量處理很多東西,但它並不是真正爲此設計的。 (我特別建議vbscript和powershell主要是因爲它們內置於Windows中。) –
謝謝,Harry。還沒有進展到VBScript或PowerShell。在PerfectScript中很容易,但我從來沒有用過Word,只是WordPerfect。我懷疑我可以讓整個政府部門使用不同的文字處理器。 :) –