Batch file 复制后如何使用批处理文件显示文件名
我有一个批处理文件,它将所有文件从一个位置复制到另一个位置 但我想显示运行批处理文件时复制到其他位置的文件名 例如:Batch file 复制后如何使用批处理文件显示文件名,batch-file,windows-10,Batch File,Windows 10,我有一个批处理文件,它将所有文件从一个位置复制到另一个位置 但我想显示运行批处理文件时复制到其他位置的文件名 例如: copy /-y "%File%\Sample.exe" "%DestinationDrive%" 我在批处理文件中有上面的命令,但是当我运行批处理文件时,我在cmd窗口中得到的输出是“复制了1个文件” 相反,我需要像“Sample.exe copied”这样的输出 我怎样才能做到这一点呢?这里有两种简单的方法来实现这一点 更好的方法是避免使用临时文件,并将所有要复制的文
copy /-y "%File%\Sample.exe" "%DestinationDrive%"
我在批处理文件中有上面的命令,但是当我运行批处理文件时,我在cmd窗口中得到的输出是“复制了1个文件”
相反,我需要像“Sample.exe copied”这样的输出
我怎样才能做到这一点呢?这里有两种简单的方法来实现这一点 更好的方法是避免使用临时文件,并将所有要复制的文件添加到脚本中的变量中,在本例中称为
myfiles
我们只是遍历变量条目并处理每个条目。此示例还将copy
过程传输到nul
,这将只允许您查看每个文件名的回显,而不是实际的复制过程
@echo off
set myfiles="example.exe","example2.dll","example3.txt","example4.inf"
for %%i in (%myfiles%) do (
copy /-y "%file%\%%~i" "%DestinationDrive%" >nul && echo Copied %%~i
)
因此,我的示例结果是:
D:\>simulate.cmd
Copied example1.exe
Copied example2.dll
Copied example3.txt
Copied example4.inf
临时文件方法: 使用要复制的文件创建一个文件: Filename.txt
file.txt
this_file.exe
example.dll
somefile.txt
然后创建一个批处理文件:
batchfile.cmd
@echo off
for /f "delims=" %%i in (filename.txt) do (
copy /-y "%File%\%%i" "%DestinationDrive%" > nul && echo Copied %%i
)
PS我使用了您的
/-y
,根据您的示例,如果您想在不提示确认的情况下实际重写文件,请使用/y
以下是实现此目的的两种简单方法
更好的方法是避免使用临时文件,并将所有要复制的文件添加到脚本中的变量中,在本例中称为myfiles
我们只是遍历变量条目并处理每个条目。此示例还将copy
过程传输到nul
,这将只允许您查看每个文件名的回显,而不是实际的复制过程
@echo off
set myfiles="example.exe","example2.dll","example3.txt","example4.inf"
for %%i in (%myfiles%) do (
copy /-y "%file%\%%~i" "%DestinationDrive%" >nul && echo Copied %%~i
)
因此,我的示例结果是:
D:\>simulate.cmd
Copied example1.exe
Copied example2.dll
Copied example3.txt
Copied example4.inf
临时文件方法: 使用要复制的文件创建一个文件: Filename.txt
file.txt
this_file.exe
example.dll
somefile.txt
然后创建一个批处理文件:
batchfile.cmd
@echo off
for /f "delims=" %%i in (filename.txt) do (
copy /-y "%File%\%%i" "%DestinationDrive%" > nul && echo Copied %%i
)
PS我使用了您的
/-y
,根据您的示例,如果您想在不提示确认的情况下实际重写文件,请使用/y
,但您复制了一个文件,这样您就知道要复制的是什么。是否指定要在脚本中复制的每个文件?是的,我指定了每个文件名,但在运行脚本后,我将其作为复制的1个文件,因此您是否只希望复制某些文件或目录中的所有文件?但具体地说,我需要将其复制到目标文件夹的文件名是,但您是复制目录中的所有文件还是只复制特定文件?但您复制了一个文件,这样您就知道要复制的是什么。是否指定要在脚本中复制的每个文件?是的,我指定了每个文件名,但在运行脚本后,我将其作为复制的1个文件,因此您是否只希望复制某些文件或目录中的所有文件?但具体地说,我需要将其复制到目标文件夹的文件名是,但是您是复制目录中的所有文件还是只复制特定文件?对于单个文件,这是可以的,如果我们有多个文件需要复制,那么条件是什么。您可能只希望复制文件…
,当复制成功时:复制/-y”%file%\%%i”“%DestinationDrive%”>nul&&echo复制了%%i
@Stephan是的,这似乎是个计划。更新!好小费!我不知道可以在批处理文件变量中存储分隔列表。这正是我所需要的。对于单个文件来说,这是可以的,如果我们有多个需要复制的文件,那么条件是什么。您可能只想复制文件…
,当复制成功时:复制/-y”%file%\%%I”“%DestinationDrive%%>nul&&echo复制%%I
@Stephan yes,这似乎是个计划。更新!好小费!我不知道可以在批处理文件变量中存储分隔列表。这正是我所需要的。