Если вы установили более высокую версию Cuda, просто запустите установщик Cuda с более низкой версией, он автоматически удалит установленную версию, если ее не будет той же версии. В моем случае в Windows 10 Cuda9.2 был удален установщиком Cuda9.0. Спасибо!
Для этого вам нужно отсроченное расширение.
Вот понятие:
@echo off
setlocal EnableDelayedExpansion
set "mystring=mousetail"
set result=5
echo %mystring%
echo !mystring:~%result%!
Должно быть легко реализовано в вашем коде.
Альтернативой без отложенного расширения является использование команды call
следующим образом:
@echo off
set "myString=something"
set "result=4"
echo %myString%
call echo %%myString:~%result%%%
Что происходит, так это то, что расширение Result
выполняется немедленно, но расширение myString
call
:
%%
после echo
заменяется одним cmd
экземпляром cmd
: %
; %result%
расширяется, то есть заменяется его значением 4
; %%
заменяется одним %
; echo %myString:~4%
передается в новый экземпляр cmd
, открытый call
, таким образом отображается thing
; Обратите внимание, что это работает только в командный файл, но не в командной строке (cmd
).
Если вам нужно отсроченное расширение для обеих вложенных переменных, вы можете использовать цикл for
:
@echo off
set "myString=something"
set "result=4"
setlocal EnableDelayedExpansion
echo !myString!
for %%I in (!Result!) do echo !myString:~%%I!
endlocal
Это работает, потому что переменная for
%%I
расширена до применения замедленного расширения, поэтому тело цикла получает командную строку echo !myString:~4!
.