Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Cmd Windows使用创建的日期时间以秒为单位批量重命名文件_Cmd_Batch File_Windows_Rename - Fatal编程技术网

Cmd Windows使用创建的日期时间以秒为单位批量重命名文件

Cmd Windows使用创建的日期时间以秒为单位批量重命名文件,cmd,batch-file,windows,rename,Cmd,Batch File,Windows,Rename,我发现以下代码适用于: 然而,我有两个问题 我需要试一下 我无法获取秒甚至毫秒作为文件名 在a中,%字符需要加倍: @For/R“C:\Folder”%%G In(*.tif)Do@For/F“Tokens=1-5Delims=:-\/。“%%H In(“%%~tG”)Do@Ren”%%G”“%%~H\%%~I%%~J\%%~K%%~L\%%~nxG” 尽管如此,在批处理文件中,我建议您不要使用一行(将行长度限制在80字符以内,以匹配默认的cmd.exe窗口宽度并帮助阅读): @For/R“C

我发现以下代码适用于:

然而,我有两个问题

  • 我需要试一下
  • 我无法获取秒甚至毫秒作为文件名
  • 在a中,
    %
    字符需要加倍:

    @For/R“C:\Folder”%%G In(*.tif)Do@For/F“Tokens=1-5Delims=:-\/。“%%H In(“%%~tG”)Do@Ren”%%G”“%%~H\%%~I%%~J\%%~K%%~L\%%~nxG”
    
    尽管如此,在批处理文件中,我建议您不要使用一行(将行长度限制在
    80
    字符以内,以匹配默认的cmd.exe窗口宽度并帮助阅读):

    @For/R“C:\Folder”%%G In(*.tif)Do@For/F“Tokens=1-5Delims=:-\/。”%%H In(
    “%%~tG”)Do@Ren”%%%G”“%%~H_%%~I%%~J_%%~K%%~L_%%~nxG”
    
    顺便说一句,您最初的示例可能更像这样:

    For/R“C:\Folder”%G In(*.tif)Do@For/F“Tokens=1-5Delims=:-\/.%H In(“%~tG”)Do@Ren”%G“%~H\%I%~J\%K%~L\%nxG”
    
    您有一些不必要的括号和未使用的标记,可以将名称和扩展名合并到一个修饰符中,而不是两个。您还可以从要重命名的文件名中删除不必要的扩展和修改器。
    [编辑]

    顺便说一句,您会注意到我没有回答您的第二个问题,因为
    %~t
    修饰符不输出秒和毫秒(因此您可能会删除
    分隔符),因此您无法从该代码中检索它。因此,您需要使用另一种方法,而本网站不提供免费的代码编写服务,因此您需要在获得代码后发布新问题。此外,问题/问题应限制为每篇文章只能出现一个。

    我在文章末尾使用powershell重命名了该文件

    dir $args[0] | foreach {
      $newname = "$($_.CreationTime.toString('yyyyMMdd-HHmmssfff'))-$($_.Name)"
      if (test-path $newname) {
        "Cannot rename $_"
      } else {
        ren $_ $newname 
      }
    }
    

    @user2306468:您可以找到一种方法(用
    CreationDate
    替换
    LastModified
    ),但是@user2306468,请先阅读并回答。
    dir $args[0] | foreach {
      $newname = "$($_.CreationTime.toString('yyyyMMdd-HHmmssfff'))-$($_.Name)"
      if (test-path $newname) {
        "Cannot rename $_"
      } else {
        ren $_ $newname 
      }
    }