Я хочу использовать дату файлов для перемещения, сортируют файл. Скажите, что у меня есть файл test.txt, созданный 10.05.2011, я хочу смочь переместить файл в C:\2011\05\10\test.txt.
Вы приблизительно делаете что-то как
Я предполагаю, что мой вопрос просто: Как можно поместить дату файлов на командную строку? Что должно заменить 'ДАТУ/t' для создавания test.txt "в" дату?
ОТРЕДАКТИРУЙТЕ Дальнейшее исследование: Я могу получить время даты через dir и найти..., но он не будет работать в пакетном файле...
Я сделал это как пакетный файл, следовательно двойные знаки %. Просто сделайте единственных при выполнении этого из командной строки.
for %%f in (*.txt) do (
for /f "tokens=1-3 delims=/ " %%i in ("%%~tf") do (
if not exist "C:\%%k\%%i\%%j" mkdir "C:\%%k\%%i\%%j"
move "%%f" "C:\%%k\%%i\%%j" >NUL
)
)
Таким образом, короткий ответ на Ваш вопрос о получении даты файла должен использовать %~tI
в для оператора, где я - переменная, используемая в для оператора. См."help for
"для большего количества информации о том, что еще доступно.
То, что необходимо сделать, принимают управление FOR и обрабатывают вывод команды DIR. Необходимо будет, вероятно, вложить два, ЧТОБЫ команды получили отдельные числа даты.
Предложенная команда DIR для использования:
dir c:\ /TC /A-D
Команда Suggested FOR:
FOR /F " TOKENS=1,5 delims= " %A IN ('dir c:\ /TC /A-D') DO @ECHO A-%A B-%B
Это должно дать Вам главным образом, в чем Вы нуждаетесь, чтобы заставить это работать. Проблема состоит в том, что CMD ужасен в этом виде работы. В то время как можно сделать это, я рекомендовал бы использовать более усовершенствованный язык как powershell. Это свободно для окон, и программное обеспечение Quest делает великого редактора GUI названным powerGUI.
Вот то, что я записал в Powershell, чтобы сделать это. Для меня намного легче следовать.
#Get files in C:\temp and filter out directories
$tarfol = "C:\temp" #Target Folder
$var = Get-ChildItem $tarfol | Where-Object {$_.mode -inotmatch "d"}
#Process Files
foreach($item in $var)
{
#Build New Folder Path
$folder = "$tarfol\$item.CreationTime.Year\$item.CreationTime.Month\$item.CreationTime.Day"
#Test for for folder
if(!(Test-Path $folder)) {
#Create folder
New-Item -Path C:\temp\$y\$m\$d -ItemType directory
}
#Move item
Move-Item -Path $item.FullName -Destination "$folder"
}
Надеюсь, это поможет.