como fazer um arquivo de lote para renomear uma pasta quando eu iniciar e fechar um programa? [fechadas]

2

Como fazer um arquivo em lotes para renomear uma pasta quando inicio um programa? - Digamos que eu queira iniciar meu word.exe, ao mesmo tempo eu preciso renomear uma pasta c:\users\my profile\my word documents para ser my documents e quando eu existir o word.exe o lote renomeia a pasta para seu nome original.

- editado mais tarde -

aqui o que eu preciso fazer

  1. inicie o programa
  2. espere até que o programa esteja totalmente carregado
  3. renomeie a pasta
  4. o programa aguarda até eu fechar
  5. quando eu estiver prestes a fechar o programa, ele não deve fechar (esperar) até que o lote renomeie a pasta de volta
  6. feche o programa
por hsawires 28.02.2015 / 16:03

3 respostas

1

Basta usar a instrução CALL para solicitar que o script em lote aguarde enquanto o programa está aberto:

@ECHO OFF
RENAME "C:\users\my profile\my word documents" "my documents"
CALL "C:\Program Files\Microsoft Office\Office15\winword.exe"
RENAME "C:\users\my profile\my documents" "my word documents"

Apenas não feche a janela do lote ou a pasta não será renomeada depois. Você pode minimizar a probabilidade de isso acontecer usando um atalho para executar o script minimizado ou usar o VBS para executá-lo oculto .

Atualizar

Eu acho que isso deve cumprir a tarefa (quase) equivalente que você pediu sem toda a dor de cabeça. Simplesmente mantendo as cópias intermediárias ao seu redor, você deve ser capaz de alcançar o que realmente quer (o que todos nós ainda estamos adivinhando).

@ECHO OFF
SET source=C:\test
SET dest=C:\test_tmp

MKDIR "%dest%"
COPY /Y "%source%\*.*" "%dest%\"
CALL "C:\Program Files\Microsoft Office\Office15\winword.exe"
RMDIR /S /Q "%source%"
MKDIR "%source%"
COPY /Y "%dest%\*.*" "%source%\"
RMDIR /S /Q "%dest%"

Se isso não for bom o suficiente para você, sua melhor opção é criar um script VBA ou .NET Suplementos no nível do aplicativo para parte disso, porque isso não pode ser feito apenas no BATCH.

    
por 28.02.2015 / 16:56
2

Veja abaixo, você precisa alterar as 4 variáveis para atender às suas necessidades. Salvar este código, adequadamente modificado, como um arquivo em lotes (extensão .bat) e, em seguida, executá-lo a partir da linha de comando (ou de executar / iniciar).

@ECHO OFF
SETLOCAL
REM location is the directory below the one you want to rename
SET location=%USERPROFILE%\Documents
SET mydir_pre=testdir1
SET mydir_post=testdir2
SET myprogram=C:\windows\system32\notepad.exe

RENAME "%location%\%mydir_pre%" "%mydir_post%" 2>NUL||ECHO Oops - failed to rename "%location%\%mydir_pre%"&&GOTO :eof
REM start the program, while you are using this instance you will see testdir2
START "My Program" /WAIT "%myprogram%"||ECHO Unable to start %myprogram%&&GOTO :eof
RENAME "%location%\%mydir_post%" "%mydir_pre%" 2>NUL||ECHO Oops - failed to rename "%location%\%mydir_post%"&&GOTO :eof
ECHO Successful completion
ENDLOCAL
    
por 28.02.2015 / 17:03
0

aqui está uma solução simples,

em um arquivo .bat:

rename "path to the file" "NewName"  
"Path to your program" 
rename "path to the file with the new name" "defaultName"

um exemplo do meu computador:

rename "C:\Users\myAccount\Desktop\defaultFolder" "NewName" 
"C:\Program Files\BreakPoint Software\Hex Workshop v6.8\HWorks64.exe"
rename "C:\Users\myAccount\Desktop\NewName" "defaultFolder" 

ao executar o arquivo .bat, o arquivo será renomeado e o programa será iniciado, depois que o programa for fechado, o primeiro nome será redefinido.

BOA SORTE,

    
por 28.02.2015 / 18:45

Tags