Если вы не хотите использовать какой-либо объект, вы все равно можете использовать setattr() внутри вашего текущего модуля:
import sys
current_module = module = sys.modules[__name__] # i.e the "file" where your code is written
setattr(current_module, 'variable_name', 15) # 15 is the value you assign to the var
print(variable_name) # >>> 15, created from a string
Это, похоже, ошибка в robocopy; он имеет некоторые другие известные аналогичные:
https://support.microsoft.com/en-us/kb/2646454
Вот возможное обходное решение :
robocopy c:\temp c:\temp2 *-a.txt /xf *?-a.txt
*-a.txt
по-прежнему будет соответствовать «-a.txt», но также соответствует «xa.txt», «xx-a.txt» и т. д.
Исключение файла /xf
выбивает «xa.txt», «xx-a.txt» и любой другой файл с символами (в частности, хотя бы один символ) перед дефисом.
Я подтвердил, что указанная выше команда будет соответствовать только «-a.txt», даже если c:\temp
также содержит эти файлы:
other folder\-a.txt
-a.txt1
-a1.txt
x-a.txt
xx-a.txt
Я не уверен на 100%, поэтому, возможно, вы захотите придумать некоторые другие имена файлов, чтобы проверить это.