Ich wurde beauftragt, Installationsskripts für meine Firma zu schreiben, die Druckertreiber auf einem Benutzercomputer installieren können.Den letzten Namen eines Verzeichnispfads im Stapel abrufen
Was ich bis jetzt getan habe ist, habe ich das Skript einen Parameter akzeptieren (der Druckertyp Bruder, Xerox, etc ..) von dort wird es den relativen Pfad zu den Treibern sammeln, und einen forfiles
Befehl ausführen Der Pfad gibt alle Treiber aus, danach wird der Benutzer nach dem korrekten Treiber gefragt, der vom Netzwerklaufwerk auf den Desktop des Benutzers kopiert wird, und es wird ausgeführt.
Was ich tun muss, ist das laufende Teil, ich muss den Treiber auf den Desktop kopieren und irgendwie den letzten Verzeichnis Teil (Beispiel: user\desktop\test.exe
Ich muss den letzten Teil test.exe
sammeln) Wie kann ich darüber gehen, dies zu tun funktional?
Grundsätzlich müsste ich den Pfad durch \
teilen und den letzten Eintrag dieser Liste greifen, ist das im Batch möglich?
@echo off
type banner.txt
if [%1]==[] goto usage
:verify_argv
IF '%1'=='canon' GOTO get_canon_path
IF '%1'=='xerox' GOTO get_xerox_path
IF '%1'=='hp' GOTO get_hp_path
IF '%1'=='dell' GOTO get_dell_path
IF '%1'=='brother' GOTO get_brother_path
goto :eof
:get_canon_path
set dir_path=\\mgtutils01\windows7apps\PRINTERS\Canon
goto :install_drivers
:get_xerox_path
set dir_path=\\mgtutils01\windows7apps\PRINTERS\Xerox
goto :install_drivers
:get_hp_path
set dir_path=\\mgtutils01\windows7apps\PRINTERS\HP
goto :install_drivers
:get_dell_path
set dir_path=\\mgtutils01\windows7apps\PRINTERS\Dell
goto :install_drivers
:get_brother_path
set dir_path=\\mgtutils01\windows7apps\Brother\Drivers
goto :install_drivers
:usage
@echo Usage: .\driver [PRINTER_TYPE]
exit /B 1
:install_drivers
@echo Finding drivers...
pushd "%dir_path%"
forfiles /s /m *.exe /c "cmd /c echo @relpath"
set /p to_install="Copy the path of the correct driver and paste here: "
@echo Copying file to %USERPROFILE%, please wait..
xcopy %to_install% "%USERPROFILE%\Desktop"
@echo Installing driver..
pushd "%USERPROFILE%\Desktop"
Keine Notwendigkeit für 'FORFILES'. Ein normaler FOR-Befehl mit der Option/R wird schneller ausgeführt. – Squashman
Es scheint, als wäre es einfacher und sauberer, nur den Pfad zum Treiber innerhalb der Ausführung des 'IF' Befehls zu setzen. 'IF '% 1' == 'canon' gesetzt dir_path = \\ mgtutils01 \ windows7apps \ DRUCKER \ Canon' – Squashman
Und Sie könnten in Betracht ziehen, Ihre String-Vergleiche mit der Option'/I' ohne Berücksichtigung der Groß-/Kleinschreibung zu machen. – Squashman