Windows 复制文件名并使用它创建新的空白文件

Windows 复制文件名并使用它创建新的空白文件,windows,batch-file,Windows,Batch File,我在一个目录中有一堆.bak文件 现在我想将这些文件复制/复制到另一个目录,但只保留文件名,而不保留内容-这是如何做到的?尝试以下方法: 对于(*.bak)中的/R C:\Backup%%f,请键入NUL>“C:\New\%%~nxf”尝试以下操作: 对于/R C:\Backup%%f in(*.bak)do type NUL>“C:\New\%%~nxf” 对于windows Vista之前的解决方案,您可以使用 for %f in ("c:\source\*.bak") do break &

我在一个目录中有一堆.bak文件

现在我想将这些文件复制/复制到另一个目录,但只保留文件名,而不保留内容-这是如何做到的?

尝试以下方法:

对于(*.bak)中的/R C:\Backup%%f,请键入NUL>“C:\New\%%~nxf”

尝试以下操作:

对于/R C:\Backup%%f in(*.bak)do type NUL>“C:\New\%%~nxf”

对于windows Vista之前的解决方案,您可以使用

for %f in ("c:\source\*.bak") do break > "c:\target\%~nxf"
如果应该从批处理文件中使用,请将
%%
更改为
%%

对于windows Vista之前的解决方案,您可以使用

for %f in ("c:\source\*.bak") do break > "c:\target\%~nxf"

如果它应该从批处理文件中使用,请将
%%
更改为
%%

这是一个cmd提示命令-将
%%
加倍为
%%
,以便在批处理文件中使用它

for %a in ("d:\folder\*.bak") do type nul>"c:\newfolder\%~nxa"

这是一个cmd提示符命令-将
%%
加倍到
%%
,以便在批处理文件中使用它

for %a in ("d:\folder\*.bak") do type nul>"c:\newfolder\%~nxa"

这仅适用于Windows Vista/Server 2008以后的版本,默认情况下,其中包括
robocy
。否则,它是Windows资源工具包的一部分,需要手动安装。这仅适用于Windows Vista/Server 2008以后的版本,默认情况下包括
robocopy
。否则,它是Windows资源工具包的一部分,需要手动安装。添加一些双引号以支持长文件名。感谢您的回答Julian。问题是,在我的Windows Server 2008 R2标准上,脚本无法解析/执行~字符-在查看输出时,它一直说ECHO处于关闭(或打开)状态,即使我启用了延迟扩展…因此,由于我使用Windows 2008 R2,MC ND的解决方案将最适合我的场景您说的是基本for循环语法,在Windows XP之前就已经存在了,但在Windows Server 2008中不起作用?我怀疑。添加一些双引号来支持长文件名。谢谢你的回答Julian。问题是,在我的Windows Server 2008 R2标准上,脚本无法解析/执行~字符-在查看输出时,它一直说ECHO处于关闭(或打开)状态,即使我启用了延迟扩展…因此,由于我使用Windows 2008 R2,MC ND的解决方案将最适合我的场景您说的是基本for循环语法,在Windows XP之前就已经存在了,但在Windows Server 2008中不起作用?我对此表示怀疑。