Arquivo em lote do Windows 7 para criar diretório

2

Eu tinha um arquivo em lotes simples que usaria no Windows XP para criar um conjunto de subpastas específicas dentro de uma pasta. Eu o configurei como um menu de contexto com o botão direito do mouse para que, ao clicar com o botão direito do mouse em uma pasta no Windows Explorer, eu pudesse executar o arquivo em lotes e criar as 10 pastas específicas nele.

Mudei o mesmo arquivo em lotes para o Windows 7. Posso executar o arquivo em lotes manualmente e ele funciona bem; no entanto, quando o executo no menu de contexto Clique com o botão direito do mouse, todas as pastas são criadas no diretório \ Windows \ System32 \, não no frio que eu tinha clicado com o botão direito.

Eu sei que o "Diretório Atual" no Windows XP costumava carregar o valor da pasta clicada com o botão direito do mouse. Agora, no Windows 7, o valor do Diretório Atual parece mudar para a pasta System32.

Eu estava tentando encontrar uma maneira de ler o diretório atual em que o mouse clicou com o botão direito, mas não consigo encontrar esse valor. "CD" é a pasta System32 no início da execução do lote.

Alguma sugestão?

Calvin
fonte
Como você o adiciona ao menu do botão direito?
nhinkle
Você está usando caminhos relativos ou absolutos no script? O Windows 7 alterou muitos dos caminhos; portanto, pode ser o padrão para o local onde o executor do arquivo em lotes está se não conseguir encontrar o caminho.
beatgammit
Ajudaria se você publicasse o próprio script. Sinto que isso tem a ver com os caminhos especificados no arquivo e onde o arquivo em lotes está localizado. Provavelmente também tem muito a ver com as entradas exatas do registro que foram usadas para disponibilizá-lo no menu de contexto do botão direito. No lote,% CD% será o caminho do qual o arquivo em lotes é executado.
precisa saber é o seguinte

Respostas:

0

Você pode alterar a commandentrada no registro para adicionar um parâmetro:

C:\Users\Me\Batches\make_dir.cmd "%1"

e use esse parâmetro no arquivo em lotes:

cd /d "%1"
md SomeDirectory
md SomeOtherDirectory

Quanto à confusão, acho que o diretório de trabalho do processo iniciado para um comando shell nunca foi realmente especificado, portanto pode ser qualquer coisa. E o Windows 7 introduziu bibliotecas que provavelmente poderiam levar a pastas residindo em "não caminhos".

Joey
fonte
Minhas entradas de registro foram simplesmente para HKCR \ Directory \ Shell \, onde adicionei a chave "CreateFolders" e o comando que aponta para o arquivo em lotes. Funciona, mas está apenas colocando as pastas no diretório System32. Ele não considera o "Diretório Atual" como a pasta na qual estou clicando com o botão direito, que é o que o WinXP costumava fazer. Não há caminhos no script, apenas comandos MD, portanto, um script muito simples.
Calvin
A sugestão de Joey funcionou. Muito obrigado. Cal
Calvin