Domanda

Ho un'applicazione che viene chiamata da un'attività pianificata. È passato da Windows Server 2003 a Windows Server 2008. Nel 2003, l'app è stata eseguita nella directory in cui si trovava l'eseguibile. Nel 2008 Environment.CurrentDirectory (C #) riporta che è in esecuzione in C: \ Windows \ System32. Come posso impostare la directory corrente? Sto usando schtasks.exe per la distribuzione da riga di comando.

UPD : tramite l'interfaccia, sembra essere il " Inizia tra (opzionale) " campo nella schermata di modifica dell'azione.

UPD : sembra che l'utilizzo del file XML possa essere d'aiuto, ma sto cercando di farne a meno.

È stato utile?

Soluzione

Di recente ho riscontrato lo stesso problema. Il modo in cui l'ho risolto è stato aggiungere l'opzione / V1 al comando schtasks.

/ V1 crea un'attività pianificata compatibile pre-vista e popola automaticamente la directory Start In.

Altri suggerimenti

Volevo solo aggiungere dettagli validi per Windows Server 2008 e 2012. Come molte persone possono capire meglio le schermate ecco una schermata:
inserisci qui la descrizione dell'immagine

Per riassumere. Quando si crea l'azione per l'attività pianificata, è possibile impostare il & Quot; Inizia tra (opzionale) & Quot; campo (arrotondato in rosso nella schermata). Questa sarà la directory da cui viene avviato il processo.

Spero che questo aiuti!

Puoi impostare l'inizio nella directory usando il seguente comando

La chiave è l'opzione \ nell'opzione / tr.

SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY\SYSTEM"
  /rp /sc ONSTART /tn task-name /tr "\"D:\name-of-file-to-run\" "

Vedi la mia risposta a una domanda simile , su come impostare & Quot; Riattiva il computer per eseguire questa attività ... & Quot; opzione disponibile solo dall'interfaccia utente dell'Utilità di pianificazione (e tramite XML) e non dalla schtasks.exe /create riga di comando.

I dettagli sono:

  1. Crea la tua attività tramite schtasks.exe /create /tn MyTask ...
  2. Esporta l'attività in XML tramite schtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. Aggiorna questo XML tramite XSLT o una ricerca / sostituisci
  4. Reimportazione (sovrascrivendo la vecchia attività) tramite schtasks.exe /create /tn MyTask /xml MyTask.xml /f

I dettagli sono qui .

Prova cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

Cambia directory di lavoro ed esegui schtasks .

Spero che le persone vedano questa risposta per l'approccio XML (francamente penso che sia un metodo più pulito e ci sia una migliore documentazione sui parametri che puoi impostare per configurare funzioni specifiche anche all'interno dell'attività) .

Passaggio 1: crea un file XML che definisca tutte le impostazioni dell'attività , più posizioni per ulteriori informazioni sugli elementi XML:

Passaggio 2: specifico per " dove " l'attività verrà eseguita da (poiché nella directory iniziale lo script inizierà nella riga di comando, questo è direttamente correlato alla domanda dell'OP .... Sarà necessario configurare il parametro in questo modo ...

<?xml version="1.0" encoding="UTF-16"?> 
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 
  <RegistrationInfo> 
    <Date>2012-08-19T16:49:14.6182</Date> 
    <Author>YOUR-COMPUTER-DOMAIN\YOUR-USERNAME</Author> 
  </RegistrationInfo>

    ... a bunch of other stuff in between here ....

  <Actions Context="Author"> 
    <Exec> 
      <Command>C:\PythonEXE\mini_program_test.exe</Command> 
      <Arguments></Arguments> 
      <WorkingDirectory>C:\Some\where\here\</WorkingDirectory> 
    </Exec>
  </Actions> 
</Task> 

Nota sopra che non ci sono virgolette nel parametro WorkingDirectory - ho fatto quell'errore in precedenza.

Passaggio 3: poiché utilizzerai schtasks.exe per CREARE questa nuova attività tramite XML, dai un'occhiata qui per maggiori informazioni: https://msdn.microsoft.com/en-us/library/bb736357.aspx

Passaggio 4: nella riga di comando di Windows, eseguirai qualcosa del genere (una volta che l'XML è pronto)

C:\>schtasks /CREATE /TN "TASK-NAME-HERE" /RU "YOUR-USERNAME" /RP "YOUR-PASSWORD" /XML C:\YOUR-XML-FILE-LOCATION\ready.xml

Spero che questo ti aiuti un po '- divertiti!

Usa My.Application.Info.DirectoryPath in App senza bisogno di un'impostazione XML.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top