我有一个需求,需要经常将一个文件复制到多台电脑。它必须首先检查该文件是否存在,如果存在则用 DATE 重命名,如果不存在则复制。
我准备了一个包含所有IP的txt文件(complist.txt)。
我希望创建一个参数文件,用户可以在其中输入所有文件/文件夹位置。批处理代码不应被用户触碰。
我做了以下测试:
要复制的新文件。
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\"
如果文件已存在则重命名
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\"
)
)