Come evitare il percorso mkdir reindirizzato a SysWOW64


3

Sto cercando di creare alcune directory (dirs) usando un file .bat. Al cmd.exe, posso creare normalmente le directory, ma quando eseguo i comandi all'interno di un file .bat, per qualche strana ragione, le directory vengono create nella directory SysWOW64.

Vinci 7 x64 SP1 PRO

Come posso dire a Windows di creare le directory nel percorso corretto?

comandi:

mkdir C:\Windows\System32\oobe\info
mkdir C:\Windows\System32\oobe\info\backgrounds

All'interno di bat, il risultato è: C: \ Windows \ SysWOW64 \ System32 \ oobe \ info


Utilizzando un collegamento a cmd.exe ed eseguendolo come amministratore, le directory vengono comunque create all'interno di SysWOW64. ex:

%windir%\system32\cmd.exe /c "D:\Test.bat"
 or
%windir%\System32\runas.exe /user:Administrator %windir%\system32\cmd.exe /c "D:\Test.bat"

ma se apri manualmente il cmd.exe come amministratore ed esegui il file .bat, funziona! Che diamine??


modifica 2

Ho scoperto il perché. È perché stavo eseguendo il .bat all'interno di XYPlorer e non Windows Explorer (WE). All'interno di WE funziona il .bat.But a shortcut opened inside a 32 bit explorer is not able to run a 62 bit cmd.exe ?


1
Apri una finestra di esecuzione, digita c:\windows\system32\cmd.exeed esegui lo script da lì. Lo script funziona come dovrebbe allora? Cosa succede se si esegue c:\windows\syswow64\cmd.exee quindi si esegue lo script?
JSanchez,

Come posso fare una mazza per farlo?
Pedro77,

Usa questo comando: c:\windows\system32\cmd.exe /c "name of your script"Se funziona, posso scrivere una risposta che (spero) farà sì che il tuo script lanci lo stesso interprete di comandi a 64 bit. Sfortunatamente, non ho una versione a 64 bit di Windows sul mio computer per testarlo.
JSanchez,

Ho appena provato sul mio sistema e non ho lo stesso comportamento ... c: \ windows \ system32 \ cmd.exe / c "nome del tuo script" è quello che ha la mia mazza per la riga di comando, quindi dovrebbe essere .
JasonXA,

eseguire 64 bit CMD.exe, non 32 bit.
magicandre1981,

Risposte:


2

Se sei assolutamente sicuro che scrivere cartelle C:\Windows\system32\sia una buona idea (probabilmente no, ma YMMV) e non vuoi che il Redirector del file system reindirizzi automaticamente il tuo file e devi scrivere con un processo a 32 bit, quindi usa il percorso C:\Windows\sysnative\e verrà scritto nella system32cartella.

Attenzione: probabilmente non è una buona idea andare a fare confusione con queste cartelle a meno che tu non capisca perfettamente cosa stai facendo. Leggi il link Redirector del file system un paio di volte.

Leggi anche questa risposta , in quanto è davvero eccezionale.


Capisco perfettamente cosa sto facendo. Modifica dello sfondo di avvio / blocco predefinito di Windows. L'ho fatto molte volte e ho bisogno di un po 'di automatizzazione. Ora sto usando Windows 10 e mi piace il suo sfondo, lol.
Pedro77,

0

SysWOW64 è una funzionalità nelle strutture delle cartelle di sistema di Windows e nel registro di Windows. Ma questa funzione causa grossi problemi all'automazione. Ecco alcune informazioni sull'emulatore SysWOW: http://msdn.microsoft.com/en-us/library/aa384249(VS.85).aspx

Per aggirare questo problema, è necessario avviare una versione a 64 bit al prompt dei comandi o utilizzare il reindirizzamento delle cartelle di MS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.