Я думал, что это будет просто, но это кажется более сложной задачей, чем я думал.
Я хочу, чтобы файл был скопирован и вставлен с добавленной отметкой времени. Я получаю отметку времени, используя этот код:
set hournum=%time:~0,2%
if %hournum% gtr 9 (set timeback=_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s) else (set timeback=_%date:~10,4%%date:~4,2%%date:~7,2%_0%time:~1,1%h%time:~3,2%m%time:~6,2%s)
Set FileAffected=%1
echo %FileAffected:~0,-1%%timeback%
Это сделало бы файл FILE.TXT
FILE.TXT_2015-03-05_11h56m32s
Но я, очевидно, хочу, чтобы это было FILE_20150305_11h56m32s.TXT
Расширение файла может быть любым расширением или любой длины. Спасибо за любую помощь.
РЕДАКТИРОВАТЬ: FileActed передается с кавычками, поэтому я просто удалил их с ~ 0, -1.
Я обнаружил, что если я сделаю это:
FOR /f %%i IN (%FileAffected%) DO (
ECHO filename=%%~fi
ECHO fileextension=%%~xi
)
Если я повторяю FileActed, я получаю полное имя пути с пробелами. Но если я использую команду FOR /F, имя файла возвращается с усечением чего-либо после пробела. Даже добавление дополнительных кавычек к переменной «% FileActed» в команде "IN" по-прежнему не исправляет это, равно как и добавление кавычек вокруг fi или xi.