2

Я только что сделал скрипт для загрузки важных файлов, но на моем компьютере более 1 пользователя, и я хочу, чтобы он загружал пользователя, который использует программу ... так, как в cmd, я пытался сделать что-то подобное

загрузить здесь

  @echo off
  ftp -s:%~dp0Upload.ftp
  pause

загрузить здесь

   open (ftp server name)
   (ftp server user-name)
   (ftp server password)
   prompt
   bin
   mput c:\user\%USERNAME%\importantfiles
   bye

Но это подвело меня, так что теперь я прошу вас ..

Как мне установить в каталог имя пользователя пользователя программы?

2 ответа2

1

Команда ftp , похоже, вообще не поддерживает переменные окружения ; рассмотреть возможность создания сценария FTP на лету. Вот пример сценария, в основном заимствованный из DosTips:

;@echo off
;(for /f "usebackq delims=" %%A in ("%~f0") do call echo.%%A)>"%temp%\%~n0.ftp"
;ftp -i -s:"%temp%\%~n0.ftp"
;goto:EOF

open example.com
username
password
!:--- FTP commands below here ---
prompt
bin
mput %userprofile%\importantfiles

Примечание. Используйте %userprofile% а не создавайте путь самостоятельно, потому что есть разные вещи, которые могут пойти не так:

  • У вас есть опечатки, например, C:\User а не C:\Users .
  • Имя папки не соответствует имени учетной записи пользователя.
  • Windows не установлена в C: диск / раздел.

Как это устроено

Этот пакет выполнял сценарий FTP, встроенный в пакет. Все переменные в сценарии FTP будут разрешены.

Цикл FOR извлекает сценарий FTP во временный файл. Это команда ECHO CALL редактируется для каждой строки для разрешения переменных.

Переменные можно использовать в сценарии FTP так же, как в пакетном сценарии, включая любые манипуляции со строками и аргументы командной строки, такие как %1 %2 %~n0 %* и т.д.

Все строки пакета начинаются с точки с запятой, поэтому они будут игнорироваться циклом FOR . Точка с запятой - это символ конца строки (EOL) по умолчанию, используемый командой FOR .

Источник: FTP - Разрешение переменных среды

Рекомендации

-1

Вы должны использовать все upercase %USERNAME% .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .