需要 .bat 脚本将文件复制到多台电脑

需要 .bat 脚本将文件复制到多台电脑

我有一个需求,需要经常将一个文件复制到多台电脑。它必须首先检查该文件是否存在,如果存在则用 DATE 重命名,如果不存在则复制。

我准备了一个包含所有IP的txt文件(complist.txt)。

我希望创建一个参数文件,用户可以在其中输入所有文件/文件夹位置。批处理代码不应被用户触碰。

我做了以下测试:

  1. 要复制的新文件。

    FOR /F "TOKENS=*" %%A IN (C:\Atiq\test_batch_copy\Complist.txt) DO XCOPY /F /Y "C:\Atiq\test_batch_copy\file.txt" "\\%%~A\applsys\Test\"
    
  2. 如果文件已存在则重命名

    FOR /F "TOKENS=*" %%A IN (C:\Atiq\test_batch_copy\Complist.txt) DO COPY /Y "C:\Atiq\test_batch_copy\file.txt" "\\%%~A\applsys\Test\file_%date:~10,4%%date:~4,2%%date:~7,2%.txt"
    

两个操作均按预期运行。我想为“复制新文件”和“如果存在则重命名文件”维护一个批处理。

请帮忙。


请告诉我这是否是正确的编码方式。它有效。我只想将参数分离到单独的文件中,然后调用其他文件中的代码。可以吗?

@echo off;
set source=C:\Atiq\test_batch_copy\file.txt
set target=\\%%~s\applsys\Test\file.txt


set IPList=C:\Atiq\test_batch_copy\Complist.txt
set today=%date:~10,4%%date:~4,2%%date:~7,2%

for /f "tokens=*" %%s in (%IPList%) do (
 if exist %target% (
 COPY /Y "C:\Atiq\test_batch_copy\file.txt" "\\%%~s\applsys\Test\file_%today%.txt"
 XCOPY /F /Y "%source%" "\\%%~s\applsys\Test\" 
 ) 

 if not exist %target% (
  XCOPY /F /Y "%source%" "\\%%~s\applsys\Test\" 
 )
)

相关内容