Arquivos em lote: interaja com uma instância shell aberta por um script em lote em outra instância

1
jmlesfrite 2019-12-31 00:52.

Meu objetivo é ter um script python chamando um script em lote chamando um arquivo cmd para carregar variáveis ​​de ambiente e executar alguns comandos com elas.

A primeira linha do meu script em lote é chamar um arquivo cmd para carregar variáveis ​​de ambiente. A segunda linha é um comando que usa este ambiente e passa argumentos.

Meu problema é que a primeira linha abre uma nova instância de shell e a segunda linha do script é executada na primeira instância de shell onde meu ambiente ainda não foi carregado.

Como devo proceder para executar os comandos usando meu ambiente na nova instância?

cmd /k "C:\Program Files (x86)\Microsoft GSDK\Command Prompts\GamingDesktopVars.cmd" GamingDesktopVS2017
wdapp unregister myAppName

Aqui está o arquivo de comando:

@echo off
REM ====================================================================
REM Set path variables
REM ==========================================================================

IF /I "%1"=="GamingDesktopVS2017" (
  CALL :SetVS2017
)ELSE (
  ECHO You must specify GamingDesktopVS2017 on the command line.
  EXIT /B 1
)

IF "%GRDKEDITION%"=="" (
    IF NOT "%2"=="" (
       SET GRDKEDITION=%2
    )ELSE (
        REM Get the most recent GXDK edition installed.
        CALL :GetLatestGRDK
    )
)

IF %DTARGETVSVER% GEQ 15.0 (

    SET GRDKVSPRERELEASE=-prerelease

    REM Possible values include Microsoft.VisualStudio.Product.Professional,
    REM Microsoft.VisualStudio.Product.Community and Microsoft.VisualStudio.Product.Enterprise
    REM separated by spaces for multiple products.
    IF "%GRDKVSPRODUCTS%"=="" (
        IF NOT "%3"=="" (
            SET GRDKVSPRODUCTS= -products %3
        )
    ) ELSE (
        SET GRDKVSPRODUCTS= -products %GRDKVSPRODUCTS%
    )

    IF "%GRDKVSVERSION%"=="" (
        IF NOT "%4"=="" (
            IF NOT "%4"=="NOPRE" (
                SET GRDKVSVERSION= -version %4
            )
        )
    ) ELSE (
        SET GRDKVSVERSION= -version %GRDKVSVERSION%
    )

    IF "%GRDKVSNOPRERELEASE%"=="" (
        IF "%4"=="NOPRE" (
            SET GRDKVSPRERELEASE=
        )ELSE (
            IF "%5"=="NOPRE" (
                SET GRDKVSPRERELEASE=
            )
        )
    ) ELSE (
        SET GRDKVSPRERELEASE=
    )
)

IF "%GRDKEDITION%"=="" (
    REM If no GXDK edition found then assume Durango.
    SET XDKEDITION=000000
)

Echo Setting environment for using Microsoft Desktop %DTARGETVS% Gaming Tools
TITLE Desktop %DTARGETVS% Gaming Command Prompt

IF "%GamingSDK%"=="" (
    CALL :GetGSDKInstallPath
)
IF "%GamingSDK%"=="" (
    ECHO Microsoft Gaming Development Kit directory is not found on this machine.
    EXIT /B 1
)

IF NOT "%GRDKEDITION%"=="000000" (
    IF "%GamingGRDKBuild%"=="" (
        CALL :GetGRDKBuildInstallPath
    )

    IF "%GamingGRDKEditionVersionFriendlyName%"=="" (
        CALL :GetGRDKEditionVersionFriendlyName
    )

    IF "%GamingDesktopExtensionSdkBuild%"=="" (
        CALL :GetGamingDesktopExtensionSdkPath
    )
)

IF NOT "%GRDKEDITION%"=="000000" (
    IF "%GamingGRDKBuild%"=="" (
        ECHO Microsoft Gaming Development Kit build for %GRDKEDITION% is not found on this machine.
        EXIT /B 1
    )

    IF "%GamingDesktopExtensionSdkBuild%"=="" (
        ECHO Microsoft Desktop Development Kit SDK Extensions for %GRDKEDITION% are not found on this machine.
        EXIT /B 1
    )

    IF NOT "%GamingGRDKEditionVersionFriendlyName%"=="" (
        TITLE %GamingGRDKEditionVersionFriendlyName% Desktop %DTARGETVS% Gaming Command Prompt
    )
)

IF "%WindowsSDKDir%" == "" (
    CALL :GetWindowsSDKDir
)

IF "%WindowsSDKDir%"=="" (
    ECHO Warning: Windows Software Development Kit directory is not found on this machine.
)

IF NOT "%WindowsSDKDir%" == "" (
    if "%WindowsSDKVersion%" == "" (
        CALL :GetWindowsSDKVersion
    )
)

IF NOT "%WindowsSDKDir%" == "" (
    IF "WindowsSDKVersion"=="" (
        ECHO Warning: Windows Software Development Kit version not specified.
    ) else (
        Set "WindowsIncludeRoot=%WindowsSDKDir%Include\%WindowsSDKVersion%\"
        Set "WindowsLibRoot=%WindowsSDKDir%Lib\%WindowsSDKVersion%\"
    )
)

IF "%VSInstallDir%"=="" (
    CALL :GetVSInstallDir
)
IF "%VSInstallDir%"=="" (
    ECHO Warning: %DTARGETVS% is not found on this machine.
)

IF "%VCInstallDir%"=="" (
    if "%VCToolsVersion%"=="" (
        CALL :GetVCToolsVersion
    )

    CALL :GetVCInstallDir
)
IF "%VCInstallDir%"=="" (
    ECHO Warning: %DTARGETVS% VC is not found on this machine.
)

IF "%FrameworkDir%"=="" (
    CALL :GetFrameworkDir
)
IF "%FrameworkDir%"=="" (
    ECHO Warning: .Net Framework is not found on this machine.
)

IF "%FrameworkVersion%"=="" (
    CALL :GetFrameworkVer
)
IF "%FrameworkVersion%"=="" (
    IF EXIST "%FrameworkDir%v4.0.30319" (
        SET "FrameworkVersion=v4.0.30319"
    )
)

IF "%MSBuildInstallDir15%"=="" (
    CALL :GetMSBuildInstallDir15
)

REM ==========================================================================
REM Set path 
REM ==========================================================================

IF EXIST "%VSInstallDir%Team Tools\Performance Tools" (
    SET "PATH=%VSInstallDir%Team Tools\Performance Tools\x64;%VSInstallDir%Team Tools\Performance Tools;%PATH%"
)

IF EXIST "%VSInstallDir%" (
    SET "PATH=%VSInstallDir%Common7\Tools;%VSInstallDir%Common7\IDE;%PATH%"
)

IF EXIST "%VCInstallDir%" (
    SET "PATH=%VSInstallDir%Common7\IDE\VC\vcpackages\;%PATH%"
)

IF EXIST "%FrameworkDir%" (
    SET "PATH=%FrameworkDir%%FrameworkVersion%;%PATH%"
)
SET "PATH=%GamingSDK%bin;%PATH%"

IF NOT "%GRDKEDITION%"=="000000" (
    SET "PATH=%GamingGRDKBuild%bin;%PATH%"
)

IF EXIST "%PIXPath%" (
    SET "PATH=%PIXPath%;%PATH%"
)

REM Normal compiler for VS2017/GXDL.
SET "PATH=%VCInstallDir%bin\Hostx64\x64;%PATH%"

IF EXIST "%WindowsSDKDir%bin\%WindowsSDKVersion\%x64" (
    SET "PATH=%WindowsSDKDir%bin\%WindowsSDKVersion%\x64;%PATH%"
)

REM ==========================================================================
REM Set Include
REM ==========================================================================

IF EXIST "%VCInstallDir%" (
    SET "INCLUDE=%VCInstallDir%INCLUDE;%INCLUDE%"
)
SET "INCLUDE=%GamingGRDKBuild%gamekit\include;%INCLUDE%"

IF EXIST "%WindowsIncludeRoot%" (
    SET "INCLUDE=%WindowsIncludeRoot%um;%WindowsIncludeRoot%shared;%WindowsIncludeRoot%winrt;%WindowsIncludeRoot%cppwinrt;%WindowsIncludeRoot%ucrt;%INCLUDE%"
)

REM ==========================================================================
REM Set Lib
REM ==========================================================================
SET "LIB=%GamingGRDKBuild%gamekit\lib\amd64;%VCInstallDir%\lib\x64;%LIB%"

IF EXIST "%WindowsLibRoot%" (
    SET "LIB=%WindowsLibRoot%um\x64;%WindowsLibRoot%ucrt\x64;%LIB%"
)

REM ==========================================================================
REM Set LibPath
REM ==========================================================================
IF EXIST "%VCInstallDir%" (
    SET "LIBPATH=%VCInstallDir%LIB\x64;%LIBPATH%"
)
IF EXIST "%FrameworkDir%" (
    SET "LIBPATH=%FrameworkDir%%FrameworkVersion%;%LIBPATH%"
)

SET "LIBPATH=%GamingDesktopExtensionSdkBuild%references\CommonConfiguration\Neutral;%LIBPATH%"

SET Platform=Gaming.Desktop.x64

REM ==========================================================================
REM Set the MSBuild path after everything else so that it appears first in the
REM path. VS2017 must not accidentally target msbuild.exe in the .NET
REM Framework since it stopped shipping there in dev12 and later.
REM ==========================================================================
  SET "PATH=%MSBuildInstallDir15%;%PATH%"

SET CommandPromptType=Native
SET VisualStudioVersion=%DTARGETVSVER%
CD /D "%GamingSDK%bin"

GOTO :EOF

:GetVSInstallDir

set VSWHERELOCATION="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"

if not exist %VSWHERELOCATION% (
    Set LegacyVSLocation="true"
)

FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\GSDK\%GRDKEDITION%\GRDK" /v "VSIXEditionID" /reg:32 2^>NUL') DO SET GamingGXDKVSIXID=%%c

IF defined LegacyVSLocation (
    FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\VisualStudio\SxS\VS7" /v "%DTARGETVSVER%" /reg:32 2^>NUL') DO SET VSInstallDir=%%c
) ELSE (
    FOR /f "usebackq tokens=1* delims=: " %%i in (`%VSWHERELOCATION% -latest -requires %GamingGXDKVSIXID% %GRDKVSVERSION% %GRDKVSPRODUCTS% %GRDKVSPRERELEASE%`) do (
        IF /i "%%i"=="installationPath" set VSInstallDir=%%j
    )
)

IF defined VSInstallDir IF not "!VSInstallDir:~-1!"=="\" set VSInstallDir=%VSInstallDir%\

GOTO :EOF

:GetVCToolsVersion
set VCDefaultConfigFile="%VSInstallDir%VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt"

if not exist %VCDefaultConfigFile% (
    ECHO Warning: Could not find default VC++ tools config file %VCDefaultConfigFile%.
    GOTO :EOF
)

for /F %%A in ('type %VCDefaultConfigFile%') do set VCToolsVersion=%%A

if "%VCToolsVersion%"=="" (
    ECHO Warning: Could not determine default VC++ tools version.
)
GOTO :EOF

:GetVCInstallDir
if "%VCToolsVersion%" NEQ "" (
    SET "VCInstallDir=%VSInstallDir%VC\Tools\MSVC\%VCToolsVersion%\"
)ELSE (
    ECHO Warning: Could not set VC Install Directory.
)
GOTO :EOF

:GetLatestGRDK
REM Sets GRDKEDITION to latest GRDK's edition number.
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\GSDK" /v "GRDKLatest" /reg:32 2^>NUL') DO SET GRDKEDITION=%%c
GOTO :EOF

:GetGRDKBuildInstallPath
REM Sets GamingGRDKBuild to location of Gaming GRDK build tools.
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\GSDK\%GRDKEDITION%\GRDK" /v "InstallPath" /reg:32 2^>NUL') DO SET GamingGRDKBuild=%%c
GOTO :EOF

:GetGamingDesktopExtensionSdkPath
REM Sets  GamingDesktopExtensionSdkBuild to the location of the current GXDK edition's extension SDK root.
FOR /f "tokens=1,2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Gaming.Desktop.x64.%GRDKEDITION%\v10.0" /v "InstallationFolder" /reg:32 2^>NUL') DO SET GamingDesktopExtensionSdkBuild=%%c
GOTO :EOF

:GetGRDKEditionVersionFriendlyName
REM Sets GamingGRDKEditionVersionFriendlyName to the friendly version name of the selected build tools.
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\GSDK\%GRDKEDITION%\GRDK" /v "EditionVersionFriendlyName" /reg:32 2^>NUL') DO SET GamingGRDKEditionVersionFriendlyName=%%c
GOTO :EOF

:GetGSDKInstallPath
REM Sets GamingXDK to location of GXDK
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\GSDK" /v "GRDKInstallPath" /reg:32 2^>NUL') DO SET GamingSDK=%%c
GOTO :EOF

:GetMSBuildInstallDir15
REM Sets MSBuild15 directory.
IF /I "%DPLATFORM%"=="VS2017" (
  SET "MSBuildInstallDir15=%VSInstallDir%MSBuild\15.0\Bin\;%PATH%"
)
GOTO :EOF

:GetFrameworkDir
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\.NETFramework" /v "InstallRoot" /reg:32 2^>NUL') DO SET FrameworkDir=%%c
GOTO :EOF

:GetFrameworkVer
FOR /f "tokens=1,2*" %%a in ('reg query "HKLM\Software\Microsoft\VisualStudio\SxS\VC7" /v "FrameworkVer32" /reg:32 2^>NUL') DO SET FrameworkVersion=%%c
GOTO :EOF

:SetVS2017
SET DPLATFORM=VS2017
SET DTARGETVS=Visual Studio 2017
SET DTARGETVSVER=15.0
GOTO :EOF

:GetWindowsSDKDir
If exist "%GamingSDK%\%GRDKEDITION%\WindowsSDK" (
 Set "WindowsSDKDir=%GamingSDK%\%GRDKEDITION%\WindowsSDK\"
) else (
    @REM Get Windows 10 SDK installed folder
    for /F "tokens=1,2*" %%i in ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0" /v "InstallationFolder"') DO (
        if "%%i"=="InstallationFolder" (
            SET WindowsSdkDir=%%~k
        )
    )
)

GOTO :EOF

:GetWindowsSDKVersion
REM From VS 2017 winsdk.bat GetWin10SdkDirHelper
@REM get windows 10 sdk version number
setlocal enableDelayedExpansion

@REM Due to the SDK installer changes beginning with the 10.0.15063.0 (RS2 SDK), there is a chance that the
@REM Windows SDK installed may not have the full set of bits required for all application scenarios.
@REM We check for the existence of a file we know to be included in the "App" and "Desktop" portions
@REM of the Windows SDK, depending on the Developer Command Prompt's -app_platform configuration.
@REM If "windows.h" (UWP) or "winsdkver.h" (Desktop) are not found, the directory will be skipped as
@REM a candidate default value for [WindowsSdkDir].
set __check_file=winsdkver.h
if /I "%VSCMD_ARG_APP_PLAT%"=="UWP" set __check_file=Windows.h

if not "%WindowsSdkDir%"=="" for /f %%i IN ('dir "%WindowsSdkDir%include\" /b /ad-h /on') DO (
    @REM Skip if Windows.h|winsdkver (based upon -app_platform configuration) is not found in %%i\um.  
    if EXIST "%WindowsSdkDir%include\%%i\um\%__check_file%" (
        set result=%%i
        if "!result:~0,3!"=="10." (
            set SDK=!result!
            if "!result!"=="%VSCMD_ARG_WINSDK%" set findSDK=1
        )
    )
)

if "%findSDK%"=="1" set SDK=%VSCMD_ARG_WINSDK%
endlocal & set WindowsSDKVersion=%SDK%

if not "%VSCMD_ARG_WINSDK%"=="" (
  @REM if the user specified a version of the SDK and it wasn't found, then use the
  @REM user-specified version to set environment variables.

  if not "%VSCMD_ARG_WINSDK%"=="%WindowsSDKVersion%" (
    if "%VSCMD_DEBUG%" GEQ "1" echo [DEBUG:%~nx0] specified /winsdk=%VSCMD_ARG_WINSDK% was not found or was incomplete
    set WindowsSDKVersion=%VSCMD_ARG_WINSDK%
    set WindowsSDKNotFound=1
  )
) else (
  @REM if no full Windows 10 SDKs were found, unset WindowsSDKDir and exit with error.

  if "%WindowsSDKVersion%"=="" (
    set WindowsSDKNotFound=1
    set WindowsSDKDir=
  )
)

GOTO :EOF

:end

1 answers

0
It Wasn't Me 2019-12-31 04:46.

Se você editar seu bastão ( GamingDesktopVS2017.cmd) e adicionar:


@echo off && cd /d "c:\folder\to\where\the\bat\are\"
SET "DPLATFORM=VS2017
SET "DTARGETVS=Visual Studio 2017"
SET "DTARGETVSVER=15.0"

E execute / chame isso de:

echo=exit|cmd /v /k GamingDesktopVS2017.cmd wdapp unregister myAppName

Por que você está usando cmd /k?


Sobre "C: \ Arquivos de programas (x86) \ Microsoft GSDK \ Command Prompts \ GamingDesktopVars.cmd" faz:

rem ::  the bat only check if your are passing this argument :GamingDesktopVS2017 
rem ::  if positive, then set same variable that you can add in your bat :

IF /I "%1"=="GamingDesktopVS2017" (

CALL :SetVS2017 => call label :SetVS2017 )ELSE (

ECHO You must specify GamingDesktopVS2017 on the command line.

EXIT /B 1

)


e o rótulo faz isso:

:SetVS2017
SET DPLATFORM=VS2017
SET DTARGETVS=Visual Studio 2017
SET DTARGETVSVER=15.0
GOTO :EOF

Basta mover essas configurações acima para o seu bastão!

Desculpe meu inglês limitado

Related questions

MORE COOL STUFF

Cate Blanchett dormiu com o marido depois de 3 dias juntos e ainda está casada com ele 25 anos depois

Cate Blanchett dormiu com o marido depois de 3 dias juntos e ainda está casada com ele 25 anos depois

Cate Blanchett desafiou os conselhos típicos de namoro quando conheceu o marido.

Por que Michael Sheen é um ator sem fins lucrativos

Por que Michael Sheen é um ator sem fins lucrativos

Michael Sheen é um ator sem fins lucrativos, mas o que exatamente isso significa?

Hallmark Star Colin Egglesfield Pratos Emocionantes Encontros de Fãs no RomaDrama Live! [Exclusivo]

Hallmark Star Colin Egglesfield Pratos Emocionantes Encontros de Fãs no RomaDrama Live! [Exclusivo]

A estrela da Hallmark Colin Egglesfield falou sobre emocionantes encontros com fãs no RomaDrama Live! além de seu programa INSPIRE na convenção.

Por que você não pode transmitir 'Exposição do Norte' online

Por que você não pode transmitir 'Exposição do Norte' online

Você terá que tirar o pó de um Blu-ray ou DVD player para ver por que Northern Exposure se tornou um dos programas mais populares dos anos 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

Como a matéria branca ajuda a função da matéria cinzenta do cérebro

Como a matéria branca ajuda a função da matéria cinzenta do cérebro

Todos nós já ouvimos falar da massa cinzenta do cérebro, mas e a massa branca? O que isso faz?

Doe seu cabelo para ajudar a manter nossa água limpa

Doe seu cabelo para ajudar a manter nossa água limpa

Aparas de cabelo de salões e doações pessoais podem ser reaproveitadas como tapetes que absorvem derramamentos de óleo e ajudam a proteger o meio ambiente.

Um olhar sobre os casamentos mais memoráveis ​​da Casa Branca

Um olhar sobre os casamentos mais memoráveis ​​da Casa Branca

Apenas algumas pessoas se casaram na Casa Branca nos últimos 200 anos. Quem eram eles e o que é necessário para marcar um casamento lá?

Relatório: Jimmy Butler quer sair de Minnesota [atualização]

Relatório: Jimmy Butler quer sair de Minnesota [atualização]

Obviamente, nem tudo estava bem em Minnesota. Por meio de Shams Charania e Jon Krawczynski do The Athletic, podemos agora ver toda a extensão dessa indisposição: Jimmy Butler, a estrela dos lobos-do-mato do presente, pediu para ser negociado, possivelmente devido a um conflito com sua estrela do futuro, ou talvez é apenas Andrew Wiggins, ou talvez ele queira preservar seus ligamentos.

Helicóptero errante causa um acidente de bicicleta idiota

Helicóptero errante causa um acidente de bicicleta idiota

Helicópteros rebeldes estão provavelmente em uma posição bem baixa na lista de coisas com que os ciclistas profissionais devem se preocupar, bem ali, com a queda na rampa de chegada. No entanto, um piloto de helicóptero desmiolado conseguiu combinar os dois na Vuelta a España ontem.

O processo de Tavis Smiley contra a PBS não está indo muito bem

O processo de Tavis Smiley contra a PBS não está indo muito bem

O apresentador de talk show Tavis Smiley fala durante o painel 'Tavis Smiley' na parte da PBS do 2011 Winter TCA press tour realizado no Langham Hotel em 9 de janeiro de 2011, em Pasadena, Califórnia.

Água na Lua: eles confirmam a existência de gelo na superfície dos pólos lunares

Água na Lua: eles confirmam a existência de gelo na superfície dos pólos lunares

Distribuição de gelo (um azul) sobre as regiões polares da Lua. A Lua acaba de se tornar um lugar muito mais interessante do que pensávamos. Acaba de ser adicionada a confirmação da existência de moléculas orgânicas de que nosso satélite possui água.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Carne de porco Mapo de Dawn Burrell e homus de Edamame

Carne de porco Mapo de Dawn Burrell e homus de Edamame

"Esta é uma indústria dominada por homens, e estou feliz por ser uma das pessoas que quebrou o molde para ajudar as mulheres de cor", diz Top Chef: finalista de Portland e chef-parceiro do final de agosto em Houston. "Muitas vezes somos ignorados e às vezes não ensinados, mas isso vai mudar."

Kate Middleton passa um dia à beira da água em Londres, além de Jennifer Lopez, Julianne Hough e mais

Kate Middleton passa um dia à beira da água em Londres, além de Jennifer Lopez, Julianne Hough e mais

Kate Middleton passa um dia na água em Londres, além de Jennifer Lopez, Julianne Hough e muito mais. De Hollywood a Nova York e em todos os lugares, veja o que suas estrelas favoritas estão fazendo!

Jovem de 17 anos esfaqueado até a morte enquanto outros 4 ficaram feridos em um ataque de faca no rio Wisconsin

Jovem de 17 anos esfaqueado até a morte enquanto outros 4 ficaram feridos em um ataque de faca no rio Wisconsin

Investigadores estão investigando se o grupo e o suspeito se conheciam antes do ataque

Aterrissagens na pista

Aterrissagens na pista

O final do verão e o outono são estações nostálgicas. Os postes de luz lançam sua luz sobre as ruas escorregadias pela chuva, e as folhas sob os pés – vermelho-alaranjado nas sombras do crepúsculo – são um lembrete de dias passados.

Imagine criar uma estratégia de conteúdo que realmente CONVERTE. É possível.

Imagine criar uma estratégia de conteúdo que realmente CONVERTE. É possível.

Em 2021, encorajo você a repensar tudo o que sabe sobre os clientes que atende e as histórias que conta a eles. Dê um passo para trás.

Uma perda gigantesca abriu meu coração para o amor

Uma perda gigantesca abriu meu coração para o amor

No dia do aniversário de 9 anos de Felix The Cat, lembro-me de uma das maiores perdas da minha vida adulta – minha Sophie em 2013. Escrevi este ensaio e o compartilhei brevemente nesta plataforma em 2013.

Quando você não pode ser a pessoa que a internet quer que você seja

Quando você não pode ser a pessoa que a internet quer que você seja

Odeio a palavra “naufrágio”. As pessoas se confortam em sua própria bússola moral e, ao fazê-lo, encontram-se julgando.

Language