Fsutil: командный файл, как получить строку, которую пользователь может вставить стрелкой вверх, чтобы вставить строку в cmd?

258
Aaron Rice

у меня есть код ниже, который открывает cmd и создает несколько разреженных файлов, используя ввод пользователя, чтобы заполнить некоторые пробелы. мне кажется, что я не могу сделать так, чтобы в коде была строка с именем C: \ users \ user name \ desktop..что я хочу, чтобы можно было легко вставить этот C: \ users \ user имя \ рабочий стол ", тогда попросите пользователя заполнить раздел" имя пользователя ", есть идеи, как мне это сделать? Я попытался ввести эхо, а затем использовать команду стрелка вверх, чтобы скопировать строку, но это не сработало, так что надеюсь, что вы, ребята, есть что-то проще, спасибо

 @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 
0

2 ответа на вопрос

0
Confuzing

Разве это не сработает?

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

Если я не понимаю ваш вопрос.

0
DavidPostill

Я хочу, чтобы можно было легко вставить этот «C: \ users \ user name \ desktop»

Затем попросите пользователя заполнить раздел «имя пользователя», чтобы узнать, как мне это сделать.

Вам не нужно делать это вообще. Профиль пользователя уже доступен в USERPROFILEпеременной окружения:

> echo %userprofile% C:\Users\DavidPostill 

Это путь к профилю, и он уже содержит имя пользователя для текущего пользователя.

Так что в вашем командном файле заменить

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

С:

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

Пожалуйста, прочитайте переменные окружения, чтобы увидеть, какие другие полезные переменные уже установлены для вас.


спасибо за это .. еще один .. вы можете передать userprofile в строку ниже `{fsutil file createnew% _path% \% fname%% sizeinbytes%`, чтобы я мог сэкономить время, вводя его вручную каждый раз? Aaron Rice 6 лет назад 0
Да. Замените `% _path% \% fname%` на `" c: \ users \% userprofile% \ Desktop \% fname% "`. Используйте `" `вокруг всего, если оно содержит пробелы. Удалите` set / p _path = Введите путь к файлу: `, так как он вам больше не нужен. DavidPostill 6 лет назад 0