Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 用于使用日期戳重命名文件名的VBscript_Datetime_Date_Vbscript_Batch File - Fatal编程技术网

Datetime 用于使用日期戳重命名文件名的VBscript

Datetime 用于使用日期戳重命名文件名的VBscript,datetime,date,vbscript,batch-file,Datetime,Date,Vbscript,Batch File,我需要将文件夹中的所有文件附加上今天的日期和时间戳,格式如下:filename\u mmddyyyy.fileextension。请有人帮忙,或者可以用bat脚本来完成 请发布您的代码,不管代码是坏是坏,它确实有帮助,FormatDateTime考虑了您的本地人,我在欧洲的佛兰德斯,所以我的系统添加了_19062012.ext,但在您的系统上应该是_06192012.ext set oFso = createobject("scripting.filesystemobject") sDirect

我需要将文件夹中的所有文件附加上今天的日期和时间戳,格式如下:filename\u mmddyyyy.fileextension。请有人帮忙,或者可以用bat脚本来完成

请发布您的代码,不管代码是坏是坏,它确实有帮助,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

当然,它可以在批处理文件中完成:-)


必须注意确保批处理文件不会重命名自身-如果在运行时重命名,则会失败。

?而子调用中的()使用字符串而不是文件夹对象作为参数,并且不测试是否存在具有新名称的文件,这是风格和品味问题,使用.MoveFile作为函数(errResult)不是有效的VBScript。当它运行没有问题时,它在我的书Ekkehard中是有效的,如果可能的话,我会测试我所有的答案,正如我之前多次说过的,拿出你自己的解决方案,而不是挑那些花时间和兴趣回答问题的人来检查是否存在,如果此脚本未与计划程序一起运行,则如果存在具有该名称的文件allready,则该脚本将失败
@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
)