直接批处理文件到当前用户文档文件夹

时间:2018-03-24 01:56:41

标签: batch-file cd

我在Win 10上,我的Documents文件夹通过Windows工具移动到我的E:驱动器。我需要运行批处理文件来找到此路径,更改批处理文件中的当前目录,并将文件从子文件夹复制到另一个驱动器。批处理文件需要能够从本地PC上的任何位置运行。

以下命令返回E:\ Users \ username \ Documents \ Test \ T1但它实际上并未更改批处理文件中的目录。

@echo
for /f "tokens=3*" %%p in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal') do set DocumentsFolder=%%p
echo %DocumentsFolder%\Test\T1\

所有复制命令行都位于批处理文件的同一部分中。本节开头的一张CD会影响整个部分吗?

我非常感谢任何建议。我在寻找新事物时经常访问这个网站,但我找不到这个答案。

非常感谢

3 个答案:

答案 0 :(得分:0)

我认为您的问题只是您需要更改驱动器以及目录。

最简单的方法是将var fingerLocation = CGPoint() override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch: AnyObject in touches { fingerLocation = touch.location(in: self) } } func rotatePlayer(){ let radians = atan2(fingerLocation.x - playerNode.position.x, fingerLocation.y - playerNode.position.y) playerNode.zRotation = -radians//this rotates the player } override func update(_ currentTime: TimeInterval) { rotatePlayer() } 选项与/D一起使用,在命令提示符处输入CD以供其使用。

CD /?

或者无需更改目录:

@Echo Off
Set "RK=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
For /F "EOL=H Tokens=2*" %%A In ('Reg Query "%RK%" /V Personal'
) Do Echo CD /D "%%~B\Test\T1"
Copy /Y "text1.txt" "F:\Test\T1"
Pause

答案 1 :(得分:0)

reg query返回的数据不是查询的干净数据。

我得到一个CRLF,然后是完整的密钥路径,CRLF,然后是值,类型 和数据。其次是至少另一个CRLF。

我将在Personal的第一个标记中搜索值%%A%%B的第二个标记具有此处未使用的数据类型。 第三个令牌具有所需的数据,因此它将在%%C时 使用tokens=1,2*

@echo off
set "Personal="

for /f "tokens=1,2*" %%A in (
    'reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V Personal'
) do if /i "%%~A" == "Personal" set "Personal=%%~C"

if not defined Personal exit /b 1

cd /d "%Personal%"
echo %cd%
pause

处理代币

示例字符串:

  

个人REG_SZ D:\用户\带空格的文件

Delims设置默认为空格标签。使用for /?获取帮助。 Delims字符分隔标记。

tokens=1开始,它将获得第一个令牌Personal

,2添加为tokens=1,2,这将获得第一个令牌Personal和 第二个令牌REG_SZ

*添加为tokens=1,2*,这将获得第一个令牌Personal, 第二个令牌REG_SZ和第三个令牌将其余部分全局化 D:\User\Documents With Spaces

令牌模式2*之间的逗号是可选的,因此我做了 不要添加逗号。

使用%%A作为初始for变量,%%A包含第一个令牌, %%B包含第二个令牌。 %%C包含第三个令牌。

答案 2 :(得分:0)

谢谢先生们, 我正在使用Michael的方法atm。有许多文件正在备份。我喜欢学习新事物。我还不太了解这些令牌,但到了那里。

set "Personal="
for /f "tokens=1,3" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V Personal') do if /i "%%~A" == "Personal" set "Personal=%%~B"
if not defined Personal exit /b 1
cd /d "%Personal%\A2A\FSX"

cd "B17"
>NUL COPY "B17log.dat" "F:\Dropbox\My FlightSim Backup\[user folder]\Documents\A2A\FSX\B17\B17log_%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,5%.dat"

cd "..\377"
>NUL COPY "377log.dat" "F:\Dropbox\My FlightSim Backup\[user folder]\Documents\A2A\FSX\377\377log_%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,5%.dat"
>NUL COPY "B377log.dat" "F:\Dropbox\My FlightSim Backup\[user folder]\Documents\A2A\FSX\377\B377log_%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,5%.dat"
>NUL COPY "B377.dat" "F:\Dropbox\My FlightSim Backup\[user folder]\Documents\A2A\FSX\377\B377_%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,5%.dat"
>NUL COPY "axisConfig.cfg" "F:\Dropbox\My FlightSim Backup\[user folder]\Documents\A2A\FSX\377\axisConfig.cfg"

再次感谢,非常感谢 罗杰