Bir ortam değişkenini bir powershell komutundan nasıl ayarlarım?


5

Cmd.exe içinde haftanın gününü içeren bir ortam değişkenine sahip olmak istiyorum.

Bu komutu çalıştırdığımda istediğim sonucu alıyorum.

C:\Users\tisc>powershell (get-date).dayofweek
Friday

Burada sonucu bir ortam değişkeninde depolamaya çalışıyorum.

C:\Users\tisc>set dow = powershell (get-date).dayofweek

Ama onu almaya çalıştığımda istediğim gibi dizgeyi alamıyorum.

C:\Users\tisc>set dow
DoW=0
dow = powershell (get-date).dayofweek

Amacım, bazı yedekleme komut dosyalarında değişkeni bir toplu iş dosyasında kullanmaktır.

Yanıtlar:


3

Geçici dosya olmadan yapmak için şunları yapabilirsiniz:

@ECHO off
FOR /F %%i in ('powershell.exe -noprofile "(get-date).DayOfWeek"') DO SET dow=%%i
ECHO Day of week %dow%
PAUSE

Komut isteminden %% çiftini kaldırın.

FOR /F %i in ('powershell.exe -noprofile "(get-date).DayOfWeek"') DO SET dow=%i

-noprofilePowerShell için ayarlanmış bir profiliniz varsa, bunu kullanmak daha hızlı çalışacaktır.


2
powershell -noprofile -command {[environment]::SetEnvironmentVariable("dow", (get-date).DayofWeek, "User")}

Açıkçası, değişikliği görmek için diğer cmd'leri açmanız gerekiyor.


0

Doğrudan yapamayacağınıza inanmıyorum, ancak sonucu elde etmek için geçici bir dosya kullanabilir ve değişkene geri alabilirsiniz:

@echo off
powershell (get-date).dayofweek > myTmpFile
set /p dow= < myTmpFile
del /q myTmpFile
echo %dow%
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.