Eu tenho um arquivo de lote em uma pasta do Google Drive na minha unidade D. Minha ideia era vinculá-lo na área de trabalho e fazer com que ele apontasse dinamicamente para uma pasta, para que eu não precisasse navegar para a pasta todas as vezes. O nome da pasta é incrementado com base no número de pastas em outro diretório. Assim:
D:\Google Drive\Projects17Project\OldBackups\
Essa pasta contém 57 pastas de backups antigos chamados 2017Project_1 para 2017Project_57
D:\Google Drive\Projects17Project\
Contém uma pasta chamada 2017Project_58
Essa é a versão atual do 2017Project em que estou trabalhando, que é onde quero que meu atalho aponte. Então, se eu migrar esse 58º backup para o OldBackups e substituí-lo por 2017Project_59 , ainda posso navegar muito rapidamente, apenas executando o arquivo em lote por meio de um atalho.
O arquivo em lote funciona muito bem. Ele conta o número de pastas em OldBackups , aumenta o número em um e, em seguida, navega até ele. Parece assim:
@echo off &setlocal
for /d %%j in (*.*) do set /a count+=1
SET /A num=count+1
set NEW_PATH=%~dp0..17Project_%num%
%SystemRoot%\explorer.exe %NEW_PATH%
endlocal
O arquivo de lote é colocado dentro de OldBackups .
Então eu pensei em usar o VBScript para executar o arquivo em lote oculto para que ele não fosse aberto com uma janela de prompt de comando toda vez que eu usasse o atalho.
O VBScript é assim:
set shell=CreateObject("Shell.Application")
shell.ShellExecute "CountFiles.bat",,"D:\Google
Drive\Projects17Project\Old Backups\", "runas", 0
set shell=nothing
O que funciona muito bem para garantir que outros arquivos em lote fiquem ocultos, para que eu nunca os note. Mas para isso não funciona. Em vez disso, ele retorna uma contagem de pastas de 198 e, em seguida, abre o explorador para Meus documentos. Eu verifiquei e em vez de contar as pastas em D: \ Google Drive ... etc. \, está contando o número de pastas dentro de C: \ Windows \ System32 \
O arquivo de lote funciona exatamente como eu quero, se eu o executar diretamente de dentro do OldBackups, mas se ele for executado a partir do VBScript (também salvo no OldBackups), ele não funciona.
Tags windows-10 batch-file vbscript