Fsutil: arquivo em lote como ter uma linha que o usuário pode flechar para colar na linha cmd?

0

Eu tenho o código abaixo que abre o cmd e cria alguns arquivos esparsos usando a entrada do usuário para preencher alguns espaços em branco. o que eu não consigo fazer é ser capaz de ter uma linha no código que seria, digamos, C: \ users \ nome do usuário \ desktop .. o que eu quero é poder inserir facilmente este "C: \ usuários \ usuário nome \ desktop ", então, o usuário deve preencher a seção" nome do usuário " Alguma idéia de como eu faria isso? Eu tentei entrar em um eco e, em seguida, usuário o comando seta para cima para copiar a linha para baixo, mas isso não funciona tão esperando que vocês tenham algo mais fácil obrigado

 @echo off
    :start
    COLOR 9B
    TITLE Batch File Creation
    echo ************************   
    echo * SPARSE FILE CREATION *        
    echo ************************
    echo Standard File Sizes:
    echo -  5mb = 5000000  bytes
    echo - 10mb = 10000000 bytes
    echo - 15mb = 15000000 bytes
    echo - 20mb = 20000000 bytes
    echo - File types can be any e.g. (xls, xlsx, jpg, png, doc, etc)  
    echo ************************
    echo.
    echo.
    echo.
    echo desktop path location is "c:\users\*your user name*\Desktop"
    set /p _path=Enter the file Path :
    set /p fname=Enter the Filename (e.g. test.xls) :
    set /p fsize=Enter the filesize (in Mb) :
    set /a sizeinbytes=fsize*1000*1000
    fsutil file createnew %_path%\%fname% %sizeinbytes%
    fsutil sparse setflag %_path%\%fname% 
    fsutil sparse setflag %_path%\%fname% 0 %sizeinbytes%
    echo %fname% File Created!!
    set /p _new=Would you like to create another file? [y]es, [n]o:
    If /i "%_new%"== "y" GOTO :start Else end

    end
    
por Aaron Rice 14.07.2017 / 17:34

2 respostas

0

O que eu quero é poder inserir facilmente este "C: \ users \ nome de usuário \ desktop"

then have the user fill in the "user name" section any ideas on how i would do this

Você não precisa fazer isso. O perfil do usuário já está disponível para você na variável de ambiente USERPROFILE :

> echo %userprofile%
C:\Users\DavidPostill

Este é o caminho do perfil e já contém o nome de usuário para o usuário atual.

Portanto, no seu arquivo de lote, substitua

echo desktop path location is "c:\users\*your user name*\Desktop"

Com:

echo desktop path location is "c:\users\%userprofile%\Desktop"

Por favor, leia as variáveis de ambiente para ver quais outras variáveis úteis já foram definidas para você.

por 14.07.2017 / 18:08
0

Isso não funcionaria?

set /p id="Enter Username: "
set location="C:\users\%id%\Desktop"
echo %location%

A menos que eu entenda mal sua pergunta.

    
por 14.07.2017 / 17:55