Я думав, що це буде просто, але здається, що це більш виклик, ніж я думав.
Я хочу, щоб файл був скопійований і вставлений з доданим штампом часу. Я отримую штамп часу за допомогою цього коду:
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
Розширення файлу може бути будь-яким розширенням або будь-якою довжиною. Дякуємо за будь-яку допомогу.
EDIT: FileAffected передається з цитатами, тому я просто зняв їх з ~ 0, -1.
Я знайшов, що якщо я це роблю:
FOR /f %%i IN (%FileAffected%) DO (
ECHO filename=%%~fi
ECHO fileextension=%%~xi
)
Якщо я повторюю FileAffected, я отримую повне ім'я шляху з пробілами. Але якщо я використовую команду FOR / F, то ім'я файлу повертає все, що скорочується після пробілу. Навіть додавання додаткових лапок до змінної "% FileAffected" у команді "IN" все ще не виправляє її, а також не додає лапки навколо fi або xi.
%timeback%
не включає рік для мене. я отримав_3/01_18h31m52s
на моїй системі, де%date%
є15/03/2015