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
%
字符需要加倍:
@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
}
}