2015-07-28 3 views
0

У меня есть командный файл, который перемещает некоторые вещи и организует их. Я хочу добавить к концу этого пакета некоторый код, чтобы переименовать все файлы с тем же именем, кроме даты, в дополнение к концу только в числах. Может быть, я плохо разбираюсь, потому что я клянусь, что это было покрыто, но я просто не мог его найти. Итак, чтобы подвести итог, мне нужна помощь в написании кода, который преобразует каждый файл в папку, у которой еще нет даты в конце, чтобы добавить дату в конец. Поэтому необходимо проверить, есть ли в конце 8 цифр, а если нет, то добавьте дату. Я пост мой пакетный файл только в том случае, вы должны знать, что я делаюПакетное переименование файлов в папке, добавив дату

rem @echo off 
SETLOCAL enableextensions 
Set dat=Date 
for %%x in (*.pdf) do (
    set "_pdfname=%%x" 
    call :doAllWork 
) 
goto :eof 

:doAllWork 
ECHO start 
start %_pdfname% 
TIMEOUT /T 2 /NOBREAK 
start select.vbs 
TIMEOUT /T 1 /NOBREAK 
start copy.vbs 
TIMEOUT /T 1 /NOBREAK 
for /F %%g in (' 
    wmic OS get LocalDateTime /value^|findstr "=" 
    ') do for /F %%G in ("%%g") do set "_%%G" 
echo %_LocalDateTime:~0,14% 
type NUL > TextFiles\%_LocalDateTime:~0,14%.txt 
start TextFiles\%_LocalDateTime:~0,14%.txt 
TIMEOUT /T 2 /NOBREAK 
ECHO close PDF 
start close.vbs 
TIMEOUT /T 2 /NOBREAK 
start window.vbs 
TIMEOUT /T 1 /NOBREAK 
start paste.vbs 
TIMEOUT /T 1 /NOBREAK 
start save.vbs 
TIMEOUT /T 1 /NOBREAK 
start close.vbs 
start enter.vbs 

move /-y "%_pdfname%" "OldTimesheets\" 

TIMEOUT /T 1 /NOBREAK 
ECHO exit loop 
if exist *.pdf (
    goto :eof 
) else (
    goto :end 
) 


:end 


cscript MessageBox.vbs "This will be shown in a popup." 

Так в конце все новые PDF-файлы в OldTimesheets должны быть переименованы, но старые будут иметь дату они были помещены туда. Спасибо заранее! Это сообщество всегда здорово!

ответ

0

Я понял это самостоятельно! Я добавил

set str=%date% 
echo.%str% 
set str=%str:/=% 
echo.%str% 

в попрошайничество и использовали

ren OldTimesheets\%_pdfname% %str%%_pdfname% 

сразу после перемещения линии. Работает как шарм! Спасибо за помощь в любом случае!

0
@echo off 
SETLOCAL enableDelayedExpansion 
for /f "delims=" %%x in ('dir /b *.pdf') do (
    call :doAllWork "%%x" 
) 
for /f "delims=" %%x in ('dir /b *.pdf') do (
    echo %%x | findstr /r "_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\." >nul 
    if errorlevel 1 ren "%%x" "%%~fx_!_LocalDateTime:~0,8!%%~nx" 
) 
cscript MessageBox.vbs "This will be shown in a popup." 
pause 
exit 

:doAllWork 
ECHO start 
start %1 
TIMEOUT /T 2 /NOBREAK & start select.vbs 
TIMEOUT /T 1 /NOBREAK & start copy.vbs 
TIMEOUT /T 1 /NOBREAK 
for /F "delims== tokens=2" %%g in (' 
    wmic OS get LocalDateTime /value ^| find "=" 
') do set _LocalDateTime=%%g 
echo !_LocalDateTime:~0,14! 
type NUL > TextFiles\!_LocalDateTime:~0,14!.txt 
start TextFiles\!_LocalDateTime:~0,14!.txt 
TIMEOUT /T 2 /NOBREAK & ECHO close PDF & start close.vbs 
TIMEOUT /T 2 /NOBREAK & start window.vbs 
TIMEOUT /T 1 /NOBREAK & start paste.vbs 
TIMEOUT /T 1 /NOBREAK & start save.vbs 
TIMEOUT /T 1 /NOBREAK & start close.vbs & start enter.vbs 
move /-y "%1" "OldTimesheets\" 
TIMEOUT /T 1 /NOBREAK & ECHO exit loop 
exit /b 

Примечание:

  • Заменен прямое перечисление *.pdf с dir /b *.pdf, чтобы предотвратить возможную повторную обработку файлов после того, как они были переименованы.
  • Добавлено SETLOCAL enableDelayedExpansion сделать _LocalDateTime изменить свое значение при каждом назначении, также ! вместо % следует использовать в таком случае
  • Удалены SETLOCAL enableextensions, как она включена по умолчанию
  • Упрощенная несколько вещей, чтобы улучшить читаемость
+0

Почему это открывает PDF-файлы в командной строке? И он не создает новые черные текстовые документы с текущей датой и временем. Я не слишком хорошо разбираюсь в пакетных файлах, поэтому, может быть, я просто этого не вижу! –

+0

Я только что переформатировал ваш код и добавил часть переименования, вот и все. – wOxxOm

+0

Мой код имел ту часть. Не уверен, почему ваш не работает для меня, но я ценю помощь! –

Смежные вопросы