2012-06-19 3 views
-1

Мне нужно, чтобы все файлы в папке были добавлены с сегодняшней меткой даты и времени в следующем формате: filename_mmddyyyy.fileextension. Может кто-то пожалуйста, пожалуйста, помогите в этом, или это можно сделать, используя скрипт bat.VBscript для переименования имени файла с datestamp

+2

[Что вы пробовали] (http://whathaveyoutried.com/)? – Filburt

ответ

0

Пожалуйста, разместите свой код, как плох или так мало, он действительно помогает, FormatDateTime забирает ваших местных жителей, я во Фландрии, Европа, поэтому моя система добавляет _19062012.ext, но в вашей системе это должно быть _06192012.ext

set oFso = createobject("scripting.filesystemobject") 
sDirectorypath = "c:\testing" 
rename_files(sDirectorypath) 

sub rename_files(folder) 
    set oFolder = oFso.getfolder(folder) 
    for each oFile in oFolder.files 
    new_name = oFile & "_" & replace(FormatDateTime(now,2),"/","") & "." & oFso.GetExtensionName(oFile) 
    wscript.echo "renaming " & oFile & " => " & new_name 
    errResult = oFso.MoveFile(oFile, new_name) 
    next 
    for each oSubFolder in oFolder.subfolders 
    rename_files(oSubFolder) 
    next 
end sub 
+0

В то время как() в подзаголовке использование строки вместо объекта папки как параметра, а не проверка наличия файла с именем new_, имеют значение стиля и вкуса, использование .MoveFile как функции (errResult) isn 't действительный VBScript. –

+0

, когда он работает без проблем, это действительно в моей книге Ekkehard, я проверял все свои ответы, если это возможно, и, как я уже говорил несколько раз раньше, придумайте свои собственные решения вместо того, чтобы выбирать тех, кто занимает время и интерес, чтобы ответить – peter

+0

на если проверка существует, если этот сценарий не запущен с планировщиком, он ДОЛЖЕН сбой, если файл allready существует с этим именем – peter

0

конечно, это может быть сделано в пакетном файле :-)

@echo off 
setlocal 
set "timestamp=" 
for /f "skip=1" %%A in ('wmic os get localdatetime') do (
    if not defined timestamp set "timestamp=%%A" 
) 
for /f "eol=: delims=" %%F in ('dir /b /a-d myFolder\*') do (
    if "%%~fF" neq "%~f0" ren "%%F" "%%~nF_%timestamp:~4,4%%timestamp:~0,4%%%~xF 
) 

необходимо соблюдать осторожность, чтобы убедиться, что пакетный файл не переименовывать себя - это будет ошибкой, если он переименовывается во время работы.

Смежные вопросы