Cmd 目录镜像和条件重命名

Cmd 目录镜像和条件重命名,cmd,robocopy,Cmd,Robocopy,我有一个活动文本文件的目录,这些文件由生产车间的机器使用。这些文件通过使用附加标签(例如000000\u R1.pim)进行修订控制。这些机器只能接收具有6位字符串名称(000000.pim)的文件。通常我们通过使用一个简单的FTP程序来处理这个问题,并在传输过程中分别重命名它们(不幸的是,FTP是这些旧机器的唯一选项) 我想创建一个镜像目录,保存已重命名的文件,这样我就不必每次将程序推送到计算机硬盘时都重命名。这使我能够为客户提供修订控制的确凿证据 我没有IT特权,甚至不能在我的计算机上安装软

我有一个活动文本文件的目录,这些文件由生产车间的机器使用。这些文件通过使用附加标签(例如000000\u R1.pim)进行修订控制。这些机器只能接收具有6位字符串名称(000000.pim)的文件。通常我们通过使用一个简单的FTP程序来处理这个问题,并在传输过程中分别重命名它们(不幸的是,FTP是这些旧机器的唯一选项)

我想创建一个镜像目录,保存已重命名的文件,这样我就不必每次将程序推送到计算机硬盘时都重命名。这使我能够为客户提供修订控制的确凿证据

我没有IT特权,甚至不能在我的计算机上安装软件

我已经编写了一个批处理文件来完成这项工作,但需要大约一分钟的时间才能完成,这相当乏味。该脚本每次运行时(2700个文件中)倾向于删除、复制和重命名大约500个文件


我想知道是否有一种更优雅的方法来处理这个问题——可能是一种每次运行时不需要太多读/写操作的方法——但它还需要足够健壮,以确保不会错过对源目录的任何更改。由于客户的需求,很可能会将非常旧的文件移动到我的源目录中,因此使用时间戳不一定有效。

您的代码是否存在某些问题?如果是,请详细说明。它是否如预期的那样工作,而您只是想对其进行改进和重写,那么这个问题太广泛,因此脱离了主题。请拿着这本书读一读!无论如何,使用该属性如何?是否正在处理多个修订?000000_R1.pim,000000_R2.pim,000000_R3.pim,。。。000000_R27.pim这将全部取代000000.pim?@aschipfl我道歉。我以为这是个好地方,但你是对的。我的问题肯定太宽泛了。我的代码按预期工作,但如果可能的话,我正试图找到更好的方法。存档有助于减少写入次数,但我需要在robocopy上清除/清除,并找出另一种方法来删除从源文件夹中删除的文件。@lit不应该有多个修订,但如果我们没有正确遵循我们的过程,可能会有多个修订。
@echo off 
echo **************************************************** 
echo Please wait while the Manufacturing Directory is updated 
echo **************************************************** 
Set TransTXT="%USERPROFILE%\Desktop\pim_Transfer.txt"
Set LogTXT="%USERPROFILE%\Desktop\Transfer_Log.txt"
set REMOTEHD="M:\DMS_8055"
set FILELOCA="T:\Fagor\PRG"
REM *** MOVE ALL FILES TO MANUFACTURING NETWORK
robocopy %FILELOCA% %REMOTEHD% /LOG:%LOGTXT% /V /NP /NS /NDL /NJH /NJS /PURGE
echo ****************************************************
echo Copy Complete
echo ****************************************************
REM RENAME ALL FILES
echo Exchanged %DATE% %TIME% > %transtxt%
setlocal EnableDelayedExpansion
echo ****************************************************
ECHO RENAMING FILES TO MATCH MACHINE REQUIREMENTS:
echo ****************************************************
cd /d "%REMOTEHD%"
for %%x in ("%REMOTEHD%\*.pim") do (
    set curn=%%~nx
    set redn=!curn:~0,6!
    IF /I !curn! neq !redn! (
        echo "!curn!" >> %transtxt%
        IF EXIST "!redn!.pim" (
            echo "!curn! REPLACED !redn!" >> %transtxt%
            del "!redn!.pim"
            ren "%%x" "!curn:~0,6!.pim"
        ) ELSE (
            ren "%%x" "!curn:~0,6!.pim"
        )
    ) 
)
REM *** copy program to a temporary folder
echo ****************************************************
echo Rename Complete
echo ****************************************************
REM start notepad %LogTXT%
REM start notepad %transtxt%